Note that there are some explanatory texts on larger screens.

plurals
  1. POMake randomly generated ImageButtons clickable
    primarykey
    data
    text
    <p>I'm having trouble with making my randomly generated image, which is interpreted as a button, become clickable. Each leads to a different activity.</p> <p>The random images work perfect actually, the only problem it's not clickable.</p> <p>Here's my Main.java:</p> <pre><code>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&lt;String&gt; images = new ArrayList&lt;String&gt;(); for (int i=1; i&lt;=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); } } </code></pre> <p>On my layout, I specified the id <code>top1</code> as a <code>Button</code>. So the above code will look up to my drawable images, which have the names <em>img1.jpg</em>, <em>img2.jpg</em>, <em>img3.jpg</em> , until <em>img13.jpg</em>.</p> <p>Making an <code>ImageButton</code> clickable to one activity without being dependent on the shown random image is easy, I can do it without problem. But what I wanna make is something like, when <em>img1.jpg</em> is generated, it becomes clickable and leads to <em>Activity1.java</em>, for <em>img2.jpg</em> the intent goes to <em>Activity2.java</em>, etc.</p> <p><strong>EDIT</strong> @Roflcoptr Here's my OnClickListener:</p> <pre><code>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); } } }; </code></pre> <p>and here's the randomizer method:</p> <pre><code> 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)); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload