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