Android:在按Previous和NExt imageview时更改图像

时间:2014-06-13 17:49:26

标签: android

机器人。我是新手,我有6张图片。一个图像视图,前一个和下一个两个按钮。编写了程序,但执行时崩溃了。我已经写了如何在图像视图中更改图像的逻辑,我已经删除了所有语法错误。这是我的Mainactivity.java代码

package com.example.hm2_koppineedi;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity {

ImageView imageView;
Button previous,next;

@Override
protected void onCreate(Bundle savedInstanceState) {

    setContentView(R.layout.activity_main);

    imageView= (ImageView)findViewById(R.id.imageView1);


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

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

    public void onClick(View view) 
    {

    int a=0;
    switch (view.getId())
    {
            case R.id.button2:
            if (a == 0)
            {
                imageView.setImageResource(R.drawable.hdimage);
                a = 1;
            }
            else if (a == 1)
            {
                imageView.setImageResource(R.drawable.elephant);
                a = 2;
            }
            else if (a == 2)
            {
                imageView.setImageResource(R.drawable.giraffe);
                a = 3;
            }
            else if (a == 3)
            {
                imageView.setImageResource(R.drawable.horse);
                a = 4;
            }
            else if (a == 4)
            {
                imageView.setImageResource(R.drawable.lion);
                a = 5;
            }
            else if (a == 5)
            {
                imageView.setImageResource(R.drawable.tiger);
                a = 6;
            }
            else if (a == 6)

            break;  
        case R.id.button1:
                a--;
                button2.performClick();
                next.performClick();


            break;
    }

    }

}

2 个答案:

答案 0 :(得分:0)

错误的代码:

previous.setOnClickListener((OnClickListener) this);
next.setOnClickListener((OnClickListener) this);

使用此:

previous.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
      //...
    }
);
next.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
      //...
    }
);

答案 1 :(得分:0)

我认为您需要覆盖OnClick方法,并确保它在您的活动中。

public class myActivity extends Activity {
...
    @Override
    public void onClick(View v) {
        // Do something
    }
...
}

你不应该施放“这个”,而是打电话给......

setOnClickListener(this);

...来自您的一个活动方法(例如:OnCreate),以便“this”成为活动。这样,在您的活动上下文中对“Click”的所有调用都将被发送到您的OnClick方法。

您可以在此网站上找到许多示例来说明这一点。