标签刷新(TabHost)

时间:2016-12-09 08:21:43

标签: java android android-tabhost

我使用TabHost设置了两个标签,两个标签都有一个列表视图。我已经设置了每个列表视图,以便当我单击一个项目时,一个正在运行的操作已完成,我遇到的问题是我必须重新加载应用程序才能在tab2上显示更新,我想要的是当我打开时在每个打开的选项卡上刷新布局的选项卡。为了获得布局,我将其包含在我的标签XML中。

我的适配器已经设置好,并且在MainActivity中运行良好时,问题只发生在添加TabHost之后。

          // My contentMain
                <LinearLayout
                android:id="@+id/tab1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical" >

                <include
                    android:id="@+id/Onglet1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    layout="@layout/layouttab1" />

            </LinearLayout>


          // My adapter
          ArrayAdapter<Store1> adapter = new MyTitleAdapter();
          ListView myList = (ListView) findViewById(R.id.ListView);
          adapterTitle.notifyDataSetChanged();
          myList.setAdapter(adapter); 


    TabHost.TabSpec spec = host.newTabSpec("Tab One");
    spec.setContent(R.id.tab1);

    spec.setIndicator("First Tab");
    host.addTab(spec);

    TabHost host = (TabHost)findViewById(R.id.tabHost);
    host.setup();

    spec = host.newTabSpec("Tab Two");
    spec.setContent(R.id.tab2);
    spec.setIndicator("Secong Tab");
    //host.setOnTabChangedListener();
    host.addTab(spec);

2 个答案:

答案 0 :(得分:0)

  

在listview中添加项目时,在适配器中调用一个方法(自己创建)

public void refreshWishlistAdapter() {
itemList.clear();
itemList.addAll(dbHelper.getallWishlistItems());
itemsAdapter.notifyDataSetChanged();
}

答案 1 :(得分:0)

在片段中使用此方法,因此当您切换片段时,此方法将执行:

private boolean isShown = false;

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (getView() != null) {
        isShown = true;
        // fetchdata()  show data when page is selected
        fetchData();
    } else {
        isShown = false;
    }
}