我在Android Studio中爲自閉症兒童創建了一個時間表/日程安排應用程序,他們可以使用'活動圖像'將活動圖像'放入並拖動'到總共5個活動位置'每天(星期一,星期二等)。拖放到多個位置
我已命名每個IMAGELOCATION如下:
MONDAY:1A,1B,1C,1D,1E 星期二:2A,2B,2C,2D,2E 星期三:3A,3B,3C,4D, 3E THURDAY:4A,4B,4C,4D,4E FRIDAY:5A,5B,5C,5D,5E SATURDAY:圖6A,6B,6C,6D,6E 星期日:圖7A,7B,7C,7D,7E
我已經成功地對它進行了編碼,將「活動圖像」放置到位置1A,但是我不確定如何去編碼它的其餘位置。我曾嘗試複製並粘貼之前用於其他位置的代碼,但是當「拖放」圖像時,它會將相同圖像複製到所有已編碼的位置。
public class NewScheduleActivity extends AppCompatActivity {
ImageView image1, image2, image3, image4, image5, image6, image7, image8, image9, image10;
ImageView activityslotlocation1a, activityslotlocation1b, activityslotlocation1c, activityslotlocation1d, activityslotlocation1e;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newschedulescreen);
image1 = (ImageView) findViewById(R.id.imageView1);
image2 = (ImageView) findViewById(R.id.imageView2);
image3 = (ImageView) findViewById(R.id.imageView3);
image4 = (ImageView) findViewById(R.id.imageView4);
image5 = (ImageView) findViewById(R.id.imageView5);
image6 = (ImageView) findViewById(R.id.imageView6);
image7 = (ImageView) findViewById(R.id.imageView7);
image8 = (ImageView) findViewById(R.id.imageView8);
image9 = (ImageView) findViewById(R.id.imageView9);
image10 = (ImageView) findViewById(R.id.imageView10);
activityslotlocation1a = (ImageView) findViewById(R.id.activityslot1a);
activityslotlocation1b = (ImageView) findViewById(R.id.activityslot1b);
activityslotlocation1c = (ImageView) findViewById(R.id.activityslot1c);
activityslotlocation1d = (ImageView) findViewById(R.id.activityslot1d);
activityslotlocation1e = (ImageView) findViewById(R.id.activityslot1e);
image1.setOnLongClickListener(longClickListener);
image2.setOnLongClickListener(longClickListener);
image3.setOnLongClickListener(longClickListener);
image4.setOnLongClickListener(longClickListener);
image5.setOnLongClickListener(longClickListener);
image6.setOnLongClickListener(longClickListener);
image7.setOnLongClickListener(longClickListener);
image8.setOnLongClickListener(longClickListener);
image9.setOnLongClickListener(longClickListener);
image10.setOnLongClickListener(longClickListener);
activityslotlocation1a.setOnDragListener(dragListener);
activityslotlocation1b.setOnDragListener(dragListener);
activityslotlocation1c.setOnDragListener(dragListener);
activityslotlocation1d.setOnDragListener(dragListener);
activityslotlocation1e.setOnDragListener(dragListener);
}
View.OnLongClickListener longClickListener = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ClipData data = ClipData.newPlainText("", "");
View.DragShadowBuilder myShadowBuilder = new View.DragShadowBuilder(v);
v.startDragAndDrop(data, myShadowBuilder, v, 0);
return true;
}
};
View.OnDragListener dragListener = new View.OnDragListener() {
@Override
public boolean onDrag(View v, DragEvent event) {
int dragEvent = event.getAction();
final View view = (View) event.getLocalState();
switch (dragEvent) {
case DragEvent.ACTION_DRAG_ENTERED:
break;
case DragEvent.ACTION_DRAG_EXITED:
break;
case DragEvent.ACTION_DROP:
// Location 1A
if (view.getId() == R.id.imageView1) {
activityslotlocation1a.setImageResource(R.drawable.art);
} else if (view.getId() == R.id.imageView2) {
activityslotlocation1a.setImageResource(R.drawable.gohome);
} else if (view.getId() == R.id.imageView3) {
activityslotlocation1a.setImageResource(R.drawable.bedtime);
} else if (view.getId() == R.id.imageView4) {
activityslotlocation1a.setImageResource(R.drawable.watchamovie);
} else if (view.getId() == R.id.imageView5) {
activityslotlocation1a.setImageResource(R.drawable.swimmingclass);
} else if (view.getId() == R.id.imageView6) {
activityslotlocation1a.setImageResource(R.drawable.cooking);
} else if (view.getId() == R.id.imageView7) {
activityslotlocation1a.setImageResource(R.drawable.blocks);
} else if (view.getId() == R.id.imageView8) {
activityslotlocation1a.setImageResource(R.drawable.drink);
} else if (view.getId() == R.id.imageView9) {
activityslotlocation1a.setImageResource(R.drawable.bedtimestory);
} else if (view.getId() == R.id.imageView10) {
activityslotlocation1a.setImageResource(R.drawable.pizzanight);
}
//view.animate()
//.x(activityslotlocation1a.getX())
//.y(activityslotlocation1a.getY())
//.setDuration(500)
//.start();
MediaPlayer mymedia = MediaPlayer.create(NewScheduleActivity.this,R.raw.whoosh);
mymedia.start();
break;
}
return true;
}
};
}
提示:我會爲圖像和activityslotlocation創建兩個數組列表,然後循環處理初始化和賦值偵聽器。爲了縮短你的代碼, – Alex