Android ViewPager, нажмите кнопку или любой otherthing о ViewPager
хорошо вы можете видеть на картинке. кнопки работают неправильно. И как эта проблема возникает, я не понимаю.
Я делаю приложение для викторины. если пользователь нажимает неправильный ответ, я хочу сделать цвет фона кнопок, красный, иначе нажмите правильный ответ, цвет фона кнопки будет зеленым.
на первой странице, которая выбрана пользователем из списка, кнопки работают нормально. после прокрутки страниц кнопки работают неправильно. всегда он меняет цвет кнопки предыдущей страницы.
Я думаю, что причина этого заключается в том, что viewpager не знает, какой цвет кнопки должен измениться после моего метода управления.
это мой метод управления в ViewPager деятельности:
public void click(View v) {
int c = 0;
switch (v.getId()) {
case R.id.cevap1a:
c = 1;
controlanswer(c);
break;
case R.id.cevap2b:
c = 2;
controlanswer(c);
break;
case R.id.cevap3c:
c = 3;
controlanswer(c);
break;
case R.id.cevap4d:
c = 4;
controlanswer(c);
break;
case R.id.cevap5e:
c = 5;
controlanswer(c);
break;
default:
break;
}
}
public void controlanswer(int a) {
int d = mViewPager.getCurrentItem();
int answer = mquestiondatabase.get(d).gettrueanswer();
if (a == answer) {
truecolor(a);
} else {
wrongcolor(a);
truecolor(answer);
}
}
public void wrongcolor(int wrong) {
cevapA = (TextView) mViewPager.findViewById(R.id.cevap1a);
cevapB = (TextView) mViewPager.findViewById(R.id.cevap2b);
cevapC = (TextView) mViewPager.findViewById(R.id.cevap3c);
cevapD = (TextView) mViewPager.findViewById(R.id.cevap4d);
cevapE = (TextView) mViewPager.findViewById(R.id.cevap5e);
switch (wrong) {
case 1:
cevapA.setBackgroundResource(R.drawable.red_buton_clicked);
break;
case 2:
cevapB.setBackgroundResource(R.drawable.red_buton_clicked);
break;
case 3:
cevapC.setBackgroundResource(R.drawable.red_buton_clicked);
break;
case 4:
cevapD.setBackgroundResource(R.drawable.red_buton_clicked);
break;
case 5:
cevapE.setBackgroundResource(R.drawable.red_buton_clicked);
break;
default:
break;
}
}
public void truecolor(int answer) {
cevapA = (TextView) findViewById(R.id.cevap1a);
cevapB = (TextView) findViewById(R.id.cevap2b);
cevapC = (TextView) findViewById(R.id.cevap3c);
cevapD = (TextView) findViewById(R.id.cevap4d);
cevapE = (TextView) findViewById(R.id.cevap5e);
AnimationDrawable rocketAnimation;
switch (answer) {
case 1:
cevapA.setBackgroundResource(R.drawable.yesilflash);
rocketAnimation = (AnimationDrawable) cevapA.getBackground();
rocketAnimation.start();
break;
case 2:
cevapB.setBackgroundResource(R.drawable.yesilflash);
rocketAnimation = (AnimationDrawable) cevapB.getBackground();
rocketAnimation.start();
break;
case 3:
cevapC.setBackgroundResource(R.drawable.yesilflash);
rocketAnimation = (AnimationDrawable) cevapC.getBackground();
rocketAnimation.start();
break;
case 4:
cevapD.setBackgroundResource(R.drawable.yesilflash);
rocketAnimation = (AnimationDrawable) cevapD.getBackground();
rocketAnimation.start();
break;
case 5:
cevapE.setBackgroundResource(R.drawable.yesilflash);
rocketAnimation = (AnimationDrawable) cevapE.getBackground();
rocketAnimation.start();
break;
default:
break;
}
}
}
Ну я совмещаю мой старый вопрос в одном вопросе
что в вашем LogCat? какое точное сообщение об ошибке вы получаете? – agamov
хорошо нет ошибок. – mehmet