热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

androidmainactivity刷新fragment,选择菜单栏后,如何刷新fragment选项卡?_androidactivity_开发99编程知识库...

通过使用FragmentManager替换旧的fragment来替换旧的。现在可以选择一个触发事件的ActiveView菜单项,并使活动fragment替换为当前屏幕

通过使用FragmentManager替换旧的fragment 来替换旧的。 现在可以选择一个触发事件的ActiveView菜单项,并使活动 fragment 替换为当前屏幕下面的屏幕。

629ab443bbdf171457fedbc86bd6967b.png

解决这个问题的问题主要与识别FragmentManager语法中的正确的R.id.layout 引用有关。 我已经发布了相关的XML和java代码,希望其他人可以发现它。

MainActivity.xml

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".MainActivity">

**android:id="@+id/fragment_placeholder"**

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

dataCapture.xml

android:tag="data_capture"

android:id="@+id/data_capture"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

tools:context=".dataCapture">

...

style="@style/colorSizeStylexml"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dip"

android:text="Tracklog:"/>

android:id="@+id/textViewOff"

android:layout_width="40dp"

android:layout_height="40dp"

android:gravity="center"

android:textAppearance="?android:attr/textAppearanceMedium"

android:layout_marginRight="10dip"

android:text="OFF"

android:background="#ff000000"

android:textStyle="bold"

android:focusableInTouchMode="true"

android:textColor="#ffffffff"/>

android:id="@+id/textViewOn"

android:layout_width="40dp"

android:layout_height="40dp"

android:gravity="center"

android:textAppearance="?android:attr/textAppearanceMedium"

android:layout_marginRight="10dip"

android:text="ON"

android:background="#ff58ff2d"

android:textStyle="bold"/>

.. .

Activity.javapublic class MainActivity extends Activity{

static int iTrackLogFlag = 0;//if value = (0) Tracklog is off, if (1) Tracklog is on

public dataCapture dataCapture;

...

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

. . .

//put Actionbar in tab mode

ActionBar actionBar = getActionBar();

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

//set titles for tabs

ActionBar.Tab dataCaptureTab = actionBar.newTab().setText("DataCapture");

ActionBar.Tab dataEditTab = actionBar.newTab().setText("DataEdit");

. . .

/*******************************************************************************************

* Create instances of each of the fragments. dataCapture is refreshed several times from

* fragmentManager (ActiveBar menutab for tracklog ON-OFF, and at closure of lookup table

* edit PopupWindows) hence the different format.

*******************************************************************************************/

//Fragment dataCaptureFragment = new dataCapture();

android.app.FragmentManager fragmentManager = getFragmentManager();

android.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

dataCapture dataCapture = new dataCapture();

fragmentTransaction.add(dataCapture,"data_capture");

fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);

fragmentTransaction.addToBackStack(null);

fragmentTransaction.commit();

Fragment dataEditFragment = new dataEdit();

. . .

//attach those fragment instances to their respective tabs

dataCaptureTab.setTabListener(new MyTabsListener(dataCapture));

dataEditTab.setTabListener(new MyTabsListener(dataEditFragment));

. . .

//add each tab to the ActionBar

actionBar.addTab(dataCaptureTab);

actionBar.addTab(dataEditTab);

. . .

if (savedInstanceState == null){//...do nothing

}else if (savedInstanceState!= null){

actionBar.setSelectedNavigationItem(savedInstanceState.getInt(TAB_KEY_INDEX,0));

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.corax, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch(item.getItemId()) {

case R.id.menuitem_tracklogOnOff:

openTracklogDialog();//opens a dialog box...trying to minimize clutter in the toolbar.

//

return true;

}

return false;

}

private void openTracklogDialog(){

AlertDialog.Builder TracklogDialog = new AlertDialog.Builder(this);

TracklogDialog.setTitle("Tracklog control");

TracklogDialog.setMessage("Press a button below to start or stop the tracklog.");

TracklogDialog.setPositiveButton("STOP",new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

iTrackLogFlag = 0;//"0" means OFF, sets button on frontend to black w/white letters OFF

}

});

TracklogDialog.setNegativeButton("START",new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

//Toast.makeText(getApplicationContext(),"Tracklog started.", Toast.LENGTH_LONG).show();

iTrackLogFlag = 1;//"1" means ON, sets button to green w/black letters

Fragment currentFragment = (dataCapture)getFragmentManager().findFragmentByTag("data_capture");

if(currentFragment == null) {

Toast.makeText(appContext,"This == NULL.", Toast.LENGTH_SHORT).show();

currentFragment = new dataCapture();

}else if(currentFragment!= null){

getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

getFragmentManager().beginTransaction().replace(R.id.fragment_placeholder, new dataCapture(),"data_capture").addToBackStack(null).commit();

Toast.makeText(appContext,"This!= NULL. currentFragment ="+currentFragment+", dataCapture ="+dataCapture+".", Toast.LENGTH_LONG).show();

}

dialog.dismiss();

}

});

AlertDialog alert = TracklogDialog.create();

alert.show();

}

}



推荐阅读
  • Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ... [详细]
  • Java 初次编程练习
    任务要求:设计一个类,包含若干基本属性和至少两个方法(可以从日常生活场景中提取)。在类中实现两个具有不同参数的构造方法。另外,设计一个包含 main 方法的类,用于测试和应用上述类。此作业需编写并调试通过。 ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • 深入解析Java中的空指针异常及其预防策略
    空指针异常(NullPointerException,简称NPE)是Java编程中最常见的异常之一。尽管其成因显而易见,但开发人员往往容易忽视或未能及时采取措施。本文将详细介绍如何有效避免空指针异常,帮助开发者提升代码质量。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 检查在所有可能的“?”替换中,给定的二进制字符串中是否出现子字符串“10”带 1 或 0 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
  • 在Java项目中,当两个文件进行互相调用时出现了函数错误。具体问题出现在 `MainFrame.java` 文件中,该文件位于 `cn.javass.bookmgr` 包下,并且导入了 `java.awt.BorderLayout` 和 `java.awt.Event` 等相关类。为了确保项目的正常运行,请求提供专业的解决方案,以解决函数调用中的错误。建议从类路径、依赖关系和方法签名等方面入手,进行全面排查和调试。 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • Android 自定义 RecycleView 左滑上下分层示例代码
    为了满足项目需求,需要在多个场景中实现左滑删除功能,并且后续可能在列表项中增加其他功能。虽然网络上有很多左滑删除的示例,但大多数封装不够完善。因此,我们尝试自己封装一个更加灵活和通用的解决方案。 ... [详细]
  • JComponentJLabel的setBorder前言用例2205262241前言setBorder(Border边框)实现自JComponentjava.awt.Insets ... [详细]
  • Flutter中计算文本尺寸的方法
    在Flutter开发中,有时需要计算文本的宽度和高度。本文介绍了一种利用TextPainter类实现这一功能的方法。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
author-avatar
手机用户2502929415
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有