2010-08-16 3 views
1

Удивление, если я собираюсь сделать это правильно или нет. У меня есть 3 кнопки на моем экране (Restart, Previous, Next). Когда изображение загружается, отображается первое изображение, которое отлично. Когда я нажимаю кнопку «Далее», я хочу, чтобы она загрузила второе изображение и так далее до 9 изображений. Если я нажму кнопку «Предыдущая», он должен вернуться к одному изображению. Нажатие «Перезагрузка» должно перейти к первому изображению. У меня есть перезапуск, который работает. У меня проблемы с кнопкой «Далее», потому что он показывает только второе изображение (я думаю, потому что моя переменная «a» инициализируется на 0). Вот мой код. Благодарен всем, кто может помочь.Изменение ImageView при нажатии кнопки

public class Story1 extends Activity implements View.OnClickListener { 

    ImageView image = (ImageView) findViewById(R.id.story1_1); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.story1); 

     Button restart = (Button) findViewById(R.id.restart); 
     restart.setOnClickListener(this); 

     Button previous = (Button) findViewById(R.id.previous); 
     previous.setOnClickListener(this); 

     Button next = (Button) findViewById(R.id.next); 
     next.setOnClickListener(this); 

    } 


    @Override 
    public void onClick(View view) 
    { 
     int a = 0; 

     switch (view.getId()) 
     { 
      case R.id.restart: 
       image.setImageResource(R.drawable.story1_1); 
       break; 

      case R.id.next: 
       if (a == 0) 
       { 
        image.setImageResource(R.drawable.story1_2); 
        a = 1; 
       } 
       else if (a == 1) 
       { 
        image.setImageResource(R.drawable.story1_3); 
        a = 2; 
       } 
       else if (a == 2) 
       { 
        image.setImageResource(R.drawable.story1_4); 
        a = 3; 
       } 
       else if (a == 3) 
       { 
        image.setImageResource(R.drawable.story1_5); 
        a = 4; 
       } 
       else if (a == 4) 
       { 
        image.setImageResource(R.drawable.story1_6); 
        a = 5; 
       } 
       else if (a == 5) 
       { 
        image.setImageResource(R.drawable.story1_7); 
        a = 6; 
       } 
       else if (a == 6) 
       { 
        image.setImageResource(R.drawable.story1_8); 
        a = 7; 
       } 
       else if (a == 7) 
       { 
        image.setImageResource(R.drawable.story1_9); 
        image.setClickable(false); 
       } 
       break; 
     } 

    } 
} 

ответ

2

Объявите свой «а» глобальный, чтобы сохранить его значение. Потому что вы инициализируете его до 0 во время onClick.

public class Story1 extends Activity implements View.OnClickListener 
{ 

ImageView image = (ImageView) findViewById(R.id.story1_1); 
Button next; 
int a = 0; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.story1); 

Button restart = (Button) findViewById(R.id.restart); 
restart.setOnClickListener(this); 

Button previous = (Button) findViewById(R.id.previous); 
previous.setOnClickListener(this); 

next = (Button) findViewById(R.id.next); 
next.setOnClickListener(this); 

} 


@Override 
public void onClick(View view) 
{ 

switch (view.getId()) 
{ 
    case R.id.restart: 
     image.setImageResource(R.drawable.story1_1); 
     a = 0; 
     break; 

    case R.id.next: 
     if (a == 0) 
     { 
      image.setImageResource(R.drawable.story1_2); 
      a = 1; 
     } 
     else if (a == 1) 
     { 
      image.setImageResource(R.drawable.story1_3); 
      a = 2; 
     } 
     else if (a == 2) 
     { 
      image.setImageResource(R.drawable.story1_4); 
      a = 3; 
     } 
     else if (a == 3) 
     { 
      image.setImageResource(R.drawable.story1_5); 
      a = 4; 
     } 
     else if (a == 4) 
     { 
      image.setImageResource(R.drawable.story1_6); 
      a = 5; 
     } 
     else if (a == 5) 
     { 
      image.setImageResource(R.drawable.story1_7); 
      a = 6; 
     } 
     else if (a == 6) 
     { 
      image.setImageResource(R.drawable.story1_8); 
      a = 7; 
     } 
     else if (a == 7) 
     { 
      image.setImageResource(R.drawable.story1_9); 
      image.setClickable(false); 
     } 
     break; 
    case R.id.previous: 
      a--; 
      next.performClick(); 
     break; 
} 

} 
} 
+0

Большое спасибо. Теперь работает. : О) – joelreeves

 Смежные вопросы

  • Нет связанных вопросов^_^