【发布时间】:2020-07-30 11:29:15
【问题描述】:
所以我有多个视图(多个文本框和图像的组合),我已将 onClickListener 附加到视图,然后将 onClick 方法附加到它们,之后我在 @987654323 中使用了 switch 语句@ 相同。
ConstraintLayout[] ll_but = new ConstraintLayout[10];
ll_but[0] = findViewById(R.id.success_stories_tile);
ll_but[1] = findViewById(R.id.misc_but3_layout);
ll_but[2] = findViewById(R.id.misc_but2_layout);
ll_but[3] = findViewById(R.id.faqs_tile);
ll_but[4] = findViewById(R.id.mohfw_ll2);
ll_but[5] = findViewById(R.id.mohfw_ll3);
ll_but[6] = findViewById(R.id.mohfw_ll4);
ll_but[7] = findViewById(R.id.mohfw_ll5);
int[] btnToAdd = new int[]{0, 1, 2, 3, 4, 5, 6 , 7};
for (int i = 0; i < btnToAdd.length; i++) {
ll_but[btnToAdd[i]].setOnClickListener(this);
}
@Override
public void onClick(View view) {
Intent i = null;
switch (view.getId()){
case R.id.flipperLeft:
viewFlipper.stopFlipping();
viewFlipper.setInAnimation(anim1);
viewFlipper.setOutAnimation(anim4);
viewFlipper.showNext();
break;
case R.id.flipperRight:
viewFlipper.stopFlipping();
viewFlipper.setInAnimation(anim2);
viewFlipper.setOutAnimation(anim3);
viewFlipper.showPrevious();
break;
case R.id.misc_but2_layout:
i = new Intent(homeActivity.this, ChatActivity.class);
startActivity(i);
break;
case R.id.misc_but3_layout:
i = getMythIntent(this);
startActivity(i);
break;
case R.id.success_stories_tile:
i = getSuccessStoriesIntent(this);
startActivity(i);
break;
case R.id.faqs_tile:
i = getFAQsIntent(this);
startActivity(i);
break;
case R.id.mohfw_ll2:
case R.id.mohfw_ll3:
case R.id.mohfw_ll4:
case R.id.mohfw_ll5:
i = getTwitterIntent ( this );
startActivity(i);
break;
default:
i = null;
break;
}
}
这对我有用,但我真的很想知道是否有更好的实现。
【问题讨论】:
-
现在不是已经弃用了吗?
标签: java android android-studio onclick onclicklistener