android - 如何刷新 SherlockFragmentActivity 的 FragmentTabHost 中的 ListView ?

标签 android android-listview actionbarsherlock refresh

使用 ActionBarSherlock 开发应用程序,我有两个相同的选项卡。如图所示,两个选项卡都有 ListView 。我需要使用栏上的刷新按钮“刷新” Activity 选项卡的列表。实现相同目标的最佳方法是什么?

如何在MainActivity中调用NetworkInformationUI的notifyDataSetChanged?

下面是代码 fragment :

public class MainActivity extends SherlockFragmentActivity {
    // Declare Variables
    private FragmentTabHost mTabHost;

    public boolean onOptionsItemSelected(MenuItem item) {

        Toast.makeText(getApplicationContext(), "Refresh Clicked", Toast.LENGTH_LONG).show();

        return true;
    }   

    @Override
        public boolean onCreateOptionsMenu(Menu menu) {

            menu.add("Refresh")
                .setIcon(R.drawable.ic_action_refresh)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

            return true;
        }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set the view from main_fragment.xml
        setContentView(R.layout.main_fragment);


        // Locate android.R.id.tabhost in main_fragment.xml
        mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);

        // Create the tabs in main_fragment.xml
        mTabHost.setup(this, getSupportFragmentManager(), R.id.tabcontent);

        // Create Tab1 with a custom image in res folder
        mTabHost.addTab(mTabHost.newTabSpec("Network Information").setIndicator("Network Information"), 
                NetworkInformationUI.class, null);

        // Create Tab2
        mTabHost.addTab(mTabHost.newTabSpec("Trouble-Shoot N/W").setIndicator("Trouble-Shoot N/W"),
                TroubleShootNWUI.class, null);




        }
}

enter image description here

最佳答案

How to call notifyDataSetChanged of NetworkInformationUI from MainActivity?

当您单击刷新菜单项时,使用 FragmentManager 获取对选项卡 fragment 的引用,这些 fragment 将使用标记集添加到 FragmentTransaction 中的布局在 TabHost.TabSpec(例如,第一个 fragment 的 "Network Information" 上,或者您可以通过 TabSpec.setTag()< 使用您自己的标签方法):

int currentTab = mTabHost.getCurrentTab();
if (currentTab == 0) { // first tab is currently selected
    NetworkInformationUI ni = (NetworkInformationUI) getSupportFragmentManager().findFragmentByTag("Network Information");
    // update the list
} else {
    TroubleShootNWUI tnui = (TroubleShootNWUI) getSupportFragmentManager().findFragmentByTag("Trouble-Shoot N/W");
    // update the list
}

关于android - 如何刷新 SherlockFragmentActivity 的 FragmentTabHost 中的 ListView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19663448/

相关文章:

android - 自定义支持对话框 fragment 文本颜色错误

java - GoogleMap addPolygon 引发有关空列表的异常

java - 安卓工作室 : Imageview background blurs on larger minimum size than image

android - 在 setVisible 设置为 false 然后 true 之后,ActionBar 图标不再出现在 ActionBar 上

Android 通过 Intent 传递 ArrayList

java - Android - 从 ArrayList 中删除项目

java - HttpPost 响应不返回 json 对象

android - 过滤作为 ViewPager fragment 一部分的 ListView

Android:如何阻止软键盘在 View 中显示其上方的分割操作栏?

android - ActionBarSherlock 不显示硬件按钮菜单