范围
我正在使用 [PagerSlidingTabStrip][1],我有两个选项卡(A 和 B),每个选项卡中都有一个 ListFragment,其中包含 6 个列表项(1-6),单击它们时,将转换到另一个片段(C)。
问题
在搜索 StackOverflow/Google 并尝试各种方法 4 天后,我始终得到一两个结果(不包括各种错误)。
1.) 在 Fragment 中使用 TextView,TextView 字符串将填充在 ActionBar(测试)和 Tab A 之间。
2.)我会点击一个列表项,它会用一个空白的白色片段替换 ListFragment(比如 C)。
资源
主要活动
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize the ViewPager and set an adapter
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new MainPagerAdapter(getSupportFragmentManager()));
// Bind the tabs to the ViewPager
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setShouldExpand(true); // expand tabs to fill parent
tabs.setViewPager(pager);
}
public class MainPagerAdapter extends FragmentPagerAdapter {
private final String[] TITLES = {"A", "B"};
public MainPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}
@Override
public int getCount() {
return TITLES.length;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new A();
case 1:
return new B();
}
return null;
}
}
A/B 类
public class A extends ListFragment {
ListView list;
final String[] items = {"1", "2", "3", "4", "5", "6"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.layout_a, container, false);
list = (ListView) rootView.findViewById(android.R.id.list);
ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, items);
list.setAdapter(adapter);
return rootView;
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// this is where I get stuck...using switch/case has resulted in the 2 results above
}
}
任何帮助将不胜感激,因为我已经坚持了将近一个星期,这令人抓狂!