gpt4 book ai didi

android - 使随机生成的 ImageButtons 可点击

转载 作者:行者123 更新时间:2023-11-30 04:43:28 25 4
gpt4 key购买 nike

我在使我随机生成的图像(被解释为按钮)变得可点击时遇到了问题。每个都会导致不同的 Activity 。

随机图像实际上工作完美,唯一的问题是不可点击。

这是我的 Main.java:

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);

final List<String> images = new ArrayList<String>();
for (int i=1; i<=13; i++) {
images.add("img"+i);
}
final Button imgView = (Button)findViewById(R.id.top1);
String imgName = null;
int id = 0;

Collections.shuffle(images, new Random());
imgName = images.remove(0);
imageRandomizer(imgName, id, imgView);
}

public void imageRandomizer(String imgName, int id, final Button imgView) {
id = getResources().getIdentifier(imgName,
"drawable",
getPackageName());
imgView.setBackgroundResource(id);
}

}

在我的布局中,我将 id top1 指定为 Button。所以上面的代码将查找我的可绘制图像,它们的名称为 img1.jpgimg2.jpgimg3.jpg,直到img13.jpg

使 ImageButton 可点击一个 Activity 而不依赖于显示的随机图像很容易,我可以毫无问题地做到这一点。但我想做的是,当 img1.jpg 生成时,它变得可点击并导致 Activity1.java,对于 img2.jpg Intent 转到 Activity2.java

编辑@Roflcoptr这是我的 OnClickListener:

private OnClickListener top_listener = new OnClickListener() {
public void onClick(View v) {
switch((Integer) v.getTag()) {

case 1:
Intent aid = new Intent(Main.this, ProjektAID.class);
startActivity(aid);

case 2:
Intent adh = new Intent(Main.this, ProjektADH.class);
startActivity(adh);

case 3:
Intent bos = new Intent(Main.this, ProjektBOS.class);
startActivity(bos);

case 4:
Intent brot = new Intent(Main.this, ProjektBROT.class);
startActivity(brot);

case 5:
Intent care = new Intent(Main.this, ProjektCARE.class);
startActivity(care);

case 6:
Intent caritas = new Intent(Main.this, ProjektCARITAS.class);
startActivity(caritas);

case 7:
Intent doc = new Intent(Main.this, ProjektDOC.class);
startActivity(doc);

case 8:
Intent drk = new Intent(Main.this, ProjektDRK.class);
startActivity(drk);

case 9:
Intent give = new Intent(Main.this, ProjektGIVE.class);
startActivity(give);

case 10:
Intent hive = new Intent(Main.this, ProjektHIV.class);
startActivity(hive);

case 11:
Intent jo = new Intent(Main.this, ProjektJOHANNITER.class);
startActivity(jo);

case 12:
Intent kind = new Intent(Main.this, ProjektKINDERHERZ.class);
startActivity(kind);

case 13:
Intent kult = new Intent(Main.this, ProjektKULTURGUT.class);
startActivity(kult);
}
}
};

这是随机发生器方法:

 public void imageRandomizer(String imgName, int id, final Button imgView) {
id = getResources().getIdentifier(imgName, "drawable", getPackageName());
imgView.setBackgroundResource(id);
imgView.setTag(new Integer(1)); //example for image 1
if (imgName.equals("img1")) {
imgView.setTag(new Integer(1)); //example for image 1
} else if (imgName.equals("img2")) {
imgView.setTag(new Integer(2));
} else if (imgName.equals("img3")) {
imgView.setTag(new Integer(3));
} else if (imgName.equals("img4")) {
imgView.setTag(new Integer(4));
} else if (imgName.equals("img5")) {
imgView.setTag(new Integer(5));
} else if (imgName.equals("img6")) {
imgView.setTag(new Integer(6));
} else if (imgName.equals("img7")) {
imgView.setTag(new Integer(7));
} else if (imgName.equals("img8")) {
imgView.setTag(new Integer(8));
} else if (imgName.equals("img9")) {
imgView.setTag(new Integer(9));
} else if (imgName.equals("img10")) {
imgView.setTag(new Integer(10));
} else if (imgName.equals("img11")) {
imgView.setTag(new Integer(11));
} else if (imgName.equals("img12")) {
imgView.setTag(new Integer(12));
}
else if (imgName.equals("img13")) {
imgView.setTag(new Integer(13));
}
}

最佳答案

我会使用标签来识别按钮。因此,在您的 imateRandomizer 中为每个可能的图像添加一个唯一的 ID。我不知道如何唯一地识别图像,但我将在此处显示名称的示例:

public void imageRandomizer(String imgName, int id, final Button imgView)
{
id = getResources().getIdentifier(imgName, "drawable", getPackageName());
imgView.setBackgroundResource(id);

if (imgName.equals("Name of the Image for your first activity") {
imgView.setTag(new Integer(1)); //example for image 1
} else if (imgName.equals("Name of the Image for your second activity") {
imgView.setTag(new Integer(2));
}
}

然后在您的 ClickListener 中,您可以检查按钮具有哪个标签:

imgView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
switch((Integer) v.getTag()) {

case 1: //start Activity 1;

break;

case 2: //start Activity 2;

break;
}
}
});

关于android - 使随机生成的 ImageButtons 可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5535918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com