Android - 设置随机按钮图像可点击

时间:2011-03-14 08:51:23

标签: android image button random

我正在使我的随机生成的图像(作为按钮读取)变得可点击,这导致每个不同图像的每个不同活动。因此,随机图像实际上是完美的,唯一的问题是它不可点击这里是我的代码

        final Button imgView = (Button)findViewById(R.id.top1);
        Random rand = new Random();            
        int rndInt = rand.nextInt(4) + 1; 
        String imgName = "img" + rndInt;
        int id = getResources().getIdentifier(imgName, "drawable", getPackageName());  
        imgView.setBackgroundResource(id);

在我的布局上,我将id top1指定为按钮。 因此,上面的代码将查看我的可绘制图像,其名称为“img1.jpg”,“img2.jpg”,“img3.jpg”和“img4.jpg”。

所以我想做的就是,当'img1.jpg'生成时,它变得可点击并导致例如:Activity1.java,对于'img2.jpg',意图转到'Activity2.java',等

非常感谢。我愿意接受任何解决方案:)

更新:

这是我的Main类的完整代码:

public class Main extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main_x);



            final Button imgView = (Button)findViewById(R.id.top1);
            Random rand = new Random();

            imgView.setOnClickListener(new ActivitySwitch(1,this));
            imgView.setOnClickListener(new ActivitySwitch(2,this));
            imgView.setOnClickListener(new ActivitySwitch(3,this));
            imgView.setOnClickListener(new ActivitySwitch(4,this));

            int rndInt = rand.nextInt(4) + 1; 
            String imgName = "img" + rndInt;
            int id = getResources().getIdentifier(imgName, "drawable", getPackageName());  
            imgView.setBackgroundResource(id);

        }

这里是ActivitySwitch类:

public class ActivitySwitch implements OnClickListener{
    int imageNo;
    Context context;
    public ActivitySwitch(int imageNo,Context context) {
        super();
        this.context=context;
        this.imageNo = imageNo;
    }
    @Override
    public void onClick(View v) {
        Intent it=new Intent();
        if(imageNo==1)
        {
         it.setClass(context, ProjektAID.class);
        }
        else if (imageNo==2)
        {
         it.setClass(context, ProjektADH.class);
        }
        else if (imageNo==3)
        {
         it.setClass(context, ProjektBOS.class);
        }
        else if (imageNo==4)
        {
         it.setClass(context, ProjektBROT.class);
        }

    }

}

2 个答案:

答案 0 :(得分:0)

如果这是一个按钮,简单实现按钮onclicklistener的功能,并从文本调用相应的活动...如果你不明白就ping我...

答案 1 :(得分:0)

有一种方法:创建一个新类

class ActivitySwitch implements OnClickListener{
    int imageNo;
    Activity context
    public ActivitySwitch(int imageNo,Context context) {
        super();
        this.context=(Activity)context;
        this.imageNo = imageNo;
    }
    @Override
    public void onClick(View v) {
        Intent it=new Intent();
        if(imageNo==1){
         it.setClass(context, Activity1.class);
            }
            else{
            .......
            }
            startActivityForResult(it,any_integer_value);




    }

}

然后在Activity集合中:

imgView.setOnClickListener(new ActivitySwitcher(randInt,this);