Во-первых, я должен сказать, что я не очень хорошо разбираюсь в английском и «совершенно новый» в программировании 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();
}
}