[英]Android viewpager does not show layouts
in my Android application I'm using viewpager and FragmentActivity . 在我的Android应用程序中,我正在使用viewpager和FragmentActivity 。 But it does not show the content. 但是它不显示内容。 My FragmentActivity is 我的FragmentActivity是
public class DropPickup extends FragmentActivity {
private DPAdapter myAdapter;
private ViewPager myPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myAdapter = new DPAdapter(getSupportFragmentManager());
myPager = (ViewPager) findViewById(R.id.dp_viewpager);
myPager.setAdapter(myAdapter);
}
public static class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return 3;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new PickUpFragment();
case 1:
return new DropFragment();
default:
return null;
}
}
}
} }
and my page adapter is as below. 我的页面适配器如下。
public DPAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int position) {
// TODO Auto-generated method stub
switch (position) {
case 0:
return new PickUpFragment();
case 1:
return new DropFragment();
default:
return null;
}
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 2;
}
} }
this is one of my fragments 这是我的片段之一
public class DropFragment extends Fragment {
TableLayout DTbl;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View viewx=inflater.inflate(R.layout.fragment_drop, container, false);
DTbl = (TableLayout) viewx.findViewById(R.id.dpp_tbl_prs_tbl);
//return super.onCreateView(inflater, container, savedInstanceState);
return viewx;
}
} }
this is my layout view pager 这是我的布局视图传呼机
<android.support.v4.view.ViewPager
android:id="@+id/dp_viewpager"
android:layout_width="wrap_content"
android:layout_height="fill_parent" />
So can someone help me to figure out the problem. 所以有人可以帮助我找出问题所在。 Thank you !!!! 谢谢 !!!!
What is the purpose of writing two separate classes MyAdapter & DPAdapter when they are same so, drop one of them. 当两个单独的类MyAdapter和DPAdapter相同时,写它们的目的是什么,所以删除其中一个。 Otherwise your code is looking fine. 否则,您的代码看起来不错。
Update 更新
Use this code and keep MyAdapter class 使用此代码并保留MyAdapter类
myAdapter = new MyAdapter(getSupportFragmentManager());
myPager = (ViewPager) findViewById(R.id.dp_viewpager);
myPager.setAdapter(myAdapter);
Here is my code how I use viewpager 这是我的代码如何使用viewpager
public class Book extends FragmentActivity {
private static final String[] CONTENT = new String[] { "A", "B", "C"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.book);
FragmentStatePagerAdapter adapter = new MyFragmentPageAdapter(getSupportFragmentManager());
ViewPager pager = (ViewPager)findViewById(R.id.pager);
pager.setAdapter(adapter);
pager.setCurrentItem(CONTENT.length);
}
class MyFragmentPageAdapter extends FragmentStatePagerAdapter {
public MyFragmentPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
if(CONTENT[position].equals("A"))
{
return Page1.newInstance(CONTENT[position]);
} else{
return Page2.newInstance(CONTENT[position]);
}
@Override
public int getCount() {
return CONTENT.length;
}
}
}
where Page1 and Page2 are fragments 其中Page1和Page2是片段
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.