2010-08-16 146 views
1

想知道我是否正确地做这件事。我的屏幕上有3个按钮(重新启动,上一个,下一个)。当视图加载时显示第一个图像很好。当我点击“下一步”按钮时,我想让它加载第二张图像,最多9张图像。如果我点击“上一步”按钮,它应该返回一个图像。点击“重新启动”应该转到第一张图片。我有重新启动一个工作。我对Next按钮有问题,因为它只显示第二个图像(我认为是因为我的“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

声明您的“a”全球存储其价值。因为您在onClick期间将其初始化为0。

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

非常感谢。现在正在工作。 :O) – joelreeves 2010-08-16 19:08:25