【发布时间】:2012-03-23 11:18:12
【问题描述】:
首先我必须说我英语不好,而且对 Android 编程“完全陌生”。
我想创建一个类似于 Android 主屏幕的应用,它可以左右滑动来查看视图。在我的应用程序上,每个视图都有一个按钮来做某事;现在我已经使用 ViewPager 和 Fragments 完成了滑动部分。当我运行我的应用程序时,它可以顺利地进入左右视图,但我找不到使每个视图中的按钮工作的解决方案。我怎样才能做到这一点?非常感谢您的每一个回答。以下是我的代码(我根据互联网上的示例对其进行了修改)。
这是包含许多片段的主要片段类。
public class LessonsActivity extends FragmentActivity{
/** maintains the pager adapter */
private PagerAdapter mPagerAdapter;
/*
* (non-Javadoc)
*
* @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.viewpager_layout);
// initialsie the pager
this.initialisePaging();
}
/**
* Initialise the fragments to be paged
*/
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, Lesson_1.class.getName()));
fragments.add(Fragment.instantiate(this, Lesson_2.class.getName()));
fragments.add(Fragment.instantiate(this, Lesson_3.class.getName()));
fragments.add(Fragment.instantiate(this, Lesson_4.class.getName()));
this.mPagerAdapter = new PagerAdapter(
super.getSupportFragmentManager(), fragments);
//
ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
pager.setAdapter(this.mPagerAdapter);
}
}
下面这个是我用来显示布局的片段类。
public class Lesson_1 extends Fragment {
/**
* (non-Javadoc)
*
* @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater,
* android.view.ViewGroup, android.os.Bundle)
*/
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
// We have different layouts, and in one of them this
// fragment's containing frame doesn't exist. The fragment
// may still be created from its saved state, but there is
// no reason to try to create its view hierarchy because it
// won't be displayed. Note this is not needed -- we could
// just run the code below, where we would create and return
// the view hierarchy; it would just never be used.
return null;
}
return (LinearLayout) inflater.inflate(R.layout.lessons1, container,
false);
}
}
这是我的 PagerAdapterClass
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
/**
* @param fm
* @param fragments
*/
public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
/* (non-Javadoc)
* @see android.support.v4.app.FragmentPagerAdapter#getItem(int)
*/
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
/* (non-Javadoc)
* @see android.support.v4.view.PagerAdapter#getCount()
*/
@Override
public int getCount() {
return this.fragments.size();
}
}
【问题讨论】:
标签: android fragment android-viewpager