我刚开始使用带有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" />
答案 0 :(得分:1)
如果我理解正确,您需要根据Fragment
的所选位置加载ListView
的{{1}}。
如果是这种情况,则不应修改Tab
中Fragment
的{{1}}。相反,将Tab的所选位置作为ListView
的参数传递给Activity
,并根据该位置在Fragment
中加载Activity
。