У меня есть просмотрщик работает хорошо, когда я нажимаю на просмотр/страницу, он открывает новое действие, но когда я хочу нажать, чтобы перейти к viewpager, приложение закрывается. Как я могу заставить viewpager нормально открываться на текущей странице, когда я нажимаю кнопку «Назад»?Нажатие кнопки возврата на просмотрщик
Я знаю, что, как предполагается, так вот код ViewPager:
public class LogoQuizActivity extends Activity {
private
class PageListener extends SimpleOnPageChangeListener{
public void onPageSelected(int position) {
//Log.i(TAG, "page selected " + position);
currentPage = position;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyPagerAdapter adapter = new MyPagerAdapter();
ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
myPager.setAdapter(adapter);
myPager.setCurrentItem(currentPage);
myPager.setPadding(0, 150, 0, 0);
PageListener pageListener = new PageListener();
myPager.setOnPageChangeListener(pageListener);
}
private class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 5;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = null; // this comes first
int resId = 0;
switch (position) {
case 0:
resId = R.layout.farleft;
view = inflater.inflate(resId, null);
break;
case 1:
resId = R.layout.left;
view = inflater.inflate(resId, null);
break;
case 2:
resId = R.layout.middle;
view = inflater.inflate(resId, null);
break;
case 3:
resId = R.layout.right;
view = inflater.inflate(resId, null);
break;
case 4:
resId = R.layout.farright;
view = inflater.inflate(resId, null);
break;
}
view.setTag(position);
view.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
int position = (Integer) view.getTag();
Log.v("Log_tag", "Here image is clicked" + position);
if(position == 0){
Intent intent = new Intent(LogoQuizActivity.this,
LevelOne.class);
startActivity(intent);
}
if(position == 1){
Intent intent = new Intent(getBaseContext(),
LevelTwo.class);
startActivity(intent);
}
if(position == 2){
Intent intent = new Intent(getBaseContext(),
LevelThree.class);
startActivity(intent);
}
if(position == 3){
Intent intent = new Intent(getBaseContext(),
LevelFour.class);
startActivity(intent);
}
if(position == 4){
Intent intent = new Intent(getBaseContext(),
LevelFive.class);
startActivity(intent);
}
}
});
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public void finishUpdate(View arg0) {
// TODO Auto-generated method stub
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
// TODO Auto-generated method stub
}
@Override
public Parcelable saveState() {
// TODO Auto-generated method stub
return null;
}
@Override
public void startUpdate(View arg0) {
// TODO Auto-generated method stub
}
}
}
Я не уверен, если это делать с восстановлением состояния метода или вернуть нуль в parcelable savestate. Это может быть совершенно очевидно, поэтому заблаговременно!
Если вы выбрасываете «Исключение», то вам нужно указать, какой тип и разместить свой ** журнал **. Кроме того, это не похоже на то, что вы правильно используете «ViewPager», но с другой стороны вы еще никому не помогли. Вы должны попытаться задать более конкретный вопрос и предпочтительно включить любой соответствующий код. – adneal
.. это не исключение. Я просто прошу о помощи и советах. Вопрос не является расплывчатым и относится к повторному открытию viewpager после того, как его мнение было уничтожено. Постарайтесь быть более конструктивными – Pete
@Pete он прав. Если ваш просмотрщик находится в своем собственном действии, и вы запускаете новое действие, щелкнув его, вы должны вернуться к активности viewpager, нажав кнопку «Назад». Нам нужно пропустить какую-то информацию ... – Warpzit