我应该把我的代码放在ActionBar.TabListener中

时间:2014-11-09 07:57:01

标签: android-fragments android-listview

我刚开始使用带有3个标签的ActionBar.TabListener。 我选择了新的" Tabbed活动"在Android Studio中。 我的活动叫做测试...不是最好的名字,但我只是想学习:)

我在fragment_test.xml中有一个listView,我希望在原始sql搜索后填充数据。 如果我将此代码放在onCreateView中,那么每次单击选项卡时,它都会在listView中重写该选项卡并使用相同的信息。 我想要的是在这些选项卡中有不同的信息....然后我需要知道点击了哪个选项卡。我用mViewPager.getCurrentItem()做了....这是对的吗?我怎样才能获得标签的名称?

我也找到了onTabSelected ...我应该把我的代码放在这里吗?在这种情况下,我想我知道哪个选项卡被选中但是将代码放在这里真的很明智吗? 如果我这样做,那么listView1变为空...为什么?:

public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
        listView1 = (ListView)findViewById(R.id.listView2);
        listAdapter2 = new ArrayAdapter<String>(context, R.layout.simplerow, testArray);
        listAdapter2.notifyDataSetChanged();
        listView1.setAdapter(listAdapter2);

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/listView2"
        android:layout_centerHorizontal="true" />

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要根据Fragment的所选位置加载ListView的{​​{1}}。

如果是这种情况,则不应修改TabFragment的{​​{1}}。相反,将Tab的所选位置作为ListView的参数传递给Activity,并根据该位置在Fragment中加载Activity