[英]Start Fragment from SherlockFragment inside a SherlockFragmentActivity - Android
I have an Activity (call Home) extends SherlockFragmentActivity, that has 5 Tabs. 我有一个Activity(称为Home)扩展了SherlockFragmentActivity,它具有5个选项卡。 Each Tab is a SherlockFragment.
每个选项卡都是一个SherlockFragment。
This is layout home.xml : 这是布局home.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</android.support.v4.view.ViewPager>
This is Adapter for Home : 这是家用适配器:
public class ViewPagerAdapter extends FragmentPagerAdapter {
// Declare the number of ViewPager pages
final int PAGE_COUNT = 5;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int arg0) {
switch (arg0) {
// Open FragmentTab1.java
case 0:
FragmentTab1 fragmenttab1 = new FragmentTab1();
return fragmenttab1;
// Open FragmentTab2.java
case 1:
FragmentTab2 fragmenttab2 = new FragmentTab2();
return fragmenttab2;
// Open FragmentTab3.java
case 2:
FragmentTab3 fragmenttab3 = new FragmentTab3();
return fragmenttab3;
case 3:
FragmentTab4 fragmenttab4 = new FragmentTab4();
return fragmenttab4;
// Open FragmentTab3.java
case 4:
FragmentTab5 fragmenttab5 = new FragmentTab5();
return fragmenttab5;
}
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return PAGE_COUNT;
}
} }
Each Tab, that extends SherlockFragment, has a ListView. 每个扩展SherlockFragment的Tab都有一个ListView。
All I want is when each item of ListView is clicked, a new Fragment is replaced in the same position. 我想要的是单击ListView的每个项目时,在相同位置替换一个新的Fragment。
I try with Adapter for ListView but my app's force-lose. 我尝试使用Adapter for ListView,但是我的应用程序失败了。
public class ListAdapter extends BaseAdapter {
......................
private FragmentManager mFragmentManager;
public ListAdapter(FragmentManager fm) {
this.mFragmentManager = fm;
}
..............
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
........................
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Create new fragment and transaction
FragmentDetail newFragment = new FragmentDetail();
FragmentTransaction ft = mFragmentManager.beginTransaction();
// Replace fragmenttab1.xml layout. It's id is R.id.container
ft.replace(R.id.container, newFragment);
ft.addToBackStack(null);
// Commit the transaction
ft.commit();
}
});
return convertView;
}
} }
Here is LogCat. 这是LogCat。 ListVideoAdapter in LogCat is ListAdapter above.
LogCat中的ListVideoAdapter就是上面的ListAdapter。
How can I do that? 我怎样才能做到这一点?
您没有初始化convertView,并且在setOnclickListener时具有nullpointerexception
public View getView(final int position, View convertView, ViewGroup parent)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.