Текущая функциональность и задаваемый вопрос (увеличьте громкость) (~ 60 сек c в длину): https://youtu.be/PUzCh7t8Kac
Цель: Когда раздаются 3 случайные карты, я хочу пользователь нажимает на каждую фотографию и перенаправляется на другое задание с указанием животного c.
Недостаток знаний: как прикрепить событие, реагирующее на клики, к каждой Карте в списке, а не только к просмотру изображения? Есть ли более простой способ достичь моей цели, когда вы будете перенаправлены в действие, которое будет заполняться в зависимости от того, какая карта нажата? Мне больше нравится этот вариант, но он кажется более продвинутым, чем 44 отдельных вида деятельности.
XML код:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimaryDark"
tools:context=".draw_1">
<ImageView
android:id="@+id/draw_3_cards"
android:layout_width="160dp"
android:layout_height="235dp"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:contentDescription="@string/todo2"
android:src="@drawable/card_back_small"
android:layout_alignParentLeft="true"
android:layout_marginStart="5dp" />
<Button
android:id="@+id/return_home"
android:layout_width="78dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginStart="0dp"
android:layout_marginLeft="0dp"
android:text="@string/return_home" />
<LinearLayout
android:id="@+id/card_layout"
android:layout_width="195dp"
android:layout_height="730dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:orientation="vertical">
<ImageView
android:id="@+id/future_card"
android:layout_width="fill_parent"
android:layout_height="240dp"
android:layout_weight="1"
android:contentDescription="@string/todo"
android:padding="5dp"
android:src="@drawable/card_back" />
<ImageView
android:id="@+id/present_card"
android:layout_width="fill_parent"
android:layout_height="240dp"
android:layout_weight="1"
android:contentDescription="@string/todo"
android:padding="5dp"
android:src="@drawable/card_back" />
<ImageView
android:id="@+id/past_card"
android:layout_width="fill_parent"
android:layout_height="240dp"
android:layout_weight="1"
android:contentDescription="@string/todo"
android:padding="5dp"
android:src="@drawable/card_back" />
</LinearLayout>
</RelativeLayout>
JAVA код:
ImageView draw_3_cards, future_card, present_card, past_card;
ArrayList<Integer> cards;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.draw_3);
draw_3_cards = (ImageView) findViewById(R.id.draw_3_cards);
future_card = (ImageView) findViewById(R.id.future_card);
present_card = (ImageView) findViewById(R.id.present_card);
past_card = (ImageView) findViewById(R.id.past_card);
future_card.setVisibility(View.INVISIBLE);
present_card.setVisibility(View.INVISIBLE);
past_card.setVisibility(View.INVISIBLE);
cards = new ArrayList<>();
cards.add(101);
cards.add(102);
cards.add(103);
cards.add(104);
cards.add(105);
cards.add(106);
cards.add(107);
cards.add(108);
cards.add(109);
cards.add(110);
cards.add(111);
cards.add(112);
cards.add(113);
cards.add(114);
cards.add(115);
cards.add(116);
cards.add(117);
cards.add(118);
cards.add(119);
cards.add(120);
cards.add(121);
cards.add(122);
cards.add(123);
cards.add(124);
cards.add(125);
cards.add(126);
cards.add(127);
cards.add(128);
cards.add(129);
cards.add(130);
cards.add(131);
cards.add(132);
cards.add(133);
cards.add(134);
cards.add(135);
cards.add(136);
cards.add(137);
cards.add(138);
cards.add(139);
cards.add(140);
cards.add(141);
cards.add(142);
cards.add(143);
cards.add(144);
//Draw 3 Cards Button
draw_3_cards.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//shuffle the cards
Collections.shuffle(cards);
//deal the first 3 cards
assignImages(cards.get(0), future_card);
assignImages(cards.get(1), present_card);
assignImages(cards.get(2), past_card);
future_card.setVisibility(View.VISIBLE);
present_card.setVisibility(View.VISIBLE);
past_card.setVisibility(View.VISIBLE);
}
});
//Future Card Button
future_card.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openanteater();
}
});
//Return Home Button
button = (Button) findViewById(R.id.return_home);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
opendraw_page();
}
});
}
public void assignImages(int card, ImageView image){
switch (card){
case 101:
image.setImageResource(R.drawable.anteater1);
break;
case 102:
image.setImageResource(R.drawable.antelope2);
break;
case 103:
image.setImageResource(R.drawable.armadillo3);
break;
case 104:
image.setImageResource(R.drawable.badger4);
break;
case 105:
image.setImageResource(R.drawable.bat5);
break;
case 106:
image.setImageResource(R.drawable.beaver6);
break;
case 107:
image.setImageResource(R.drawable.bison7);
break;
case 108:
image.setImageResource(R.drawable.bobcat8);
break;
case 109:
image.setImageResource(R.drawable.camel9);
break;
case 110:
image.setImageResource(R.drawable.chimpmunk10);
break;
case 111:
image.setImageResource(R.drawable.deer11);
break;
case 112:
image.setImageResource(R.drawable.dolphin12);
break;
case 113:
image.setImageResource(R.drawable.elephant13);
break;
case 114:
image.setImageResource(R.drawable.fox14);
break;
case 115:
image.setImageResource(R.drawable.giraffe15);
break;
case 116:
image.setImageResource(R.drawable.gorilla16);
break;
case 117:
image.setImageResource(R.drawable.grizzlybear17);
break;
case 118:
image.setImageResource(R.drawable.hippopotamus18);
break;
case 119:
image.setImageResource(R.drawable.horse19);
break;
case 120:
image.setImageResource(R.drawable.javelina20);
break;
case 121:
image.setImageResource(R.drawable.kangaroo21);
break;
case 122:
image.setImageResource(R.drawable.koala22);
break;
case 123:
image.setImageResource(R.drawable.lemur23);
break;
case 124:
image.setImageResource(R.drawable.leopard24);
break;
case 125:
image.setImageResource(R.drawable.lion25);
break;
case 126:
image.setImageResource(R.drawable.llama26);
break;
case 127:
image.setImageResource(R.drawable.manatee27);
break;
case 128:
image.setImageResource(R.drawable.moose28);
break;
case 129:
image.setImageResource(R.drawable.mouse29);
break;
case 130:
image.setImageResource(R.drawable.orca30);
break;
case 131:
image.setImageResource(R.drawable.otter31);
break;
case 132:
image.setImageResource(R.drawable.panda32);
break;
case 133:
image.setImageResource(R.drawable.platypus33);
break;
case 134:
image.setImageResource(R.drawable.prairiedog34);
break;
case 135:
image.setImageResource(R.drawable.rabbit35);
break;
case 136:
image.setImageResource(R.drawable.raccoon36);
break;
case 137:
image.setImageResource(R.drawable.ram37);
break;
case 138:
image.setImageResource(R.drawable.rhinoceros38);
break;
case 139:
image.setImageResource(R.drawable.seal39);
break;
case 140:
image.setImageResource(R.drawable.skunk40);
break;
case 141:
image.setImageResource(R.drawable.sloth41);
break;
case 142:
image.setImageResource(R.drawable.tiger42);
break;
case 143:
image.setImageResource(R.drawable.whale42);
break;
case 144:
image.setImageResource(R.drawable.wolf44);
break;
}
}
public void opendraw_page() {
Intent intent = new Intent(this, draw_page.class);
startActivity(intent);
}
public void openanteater(){
Intent intent = new Intent (this, anteater.class);
startActivity(intent);
}