[英]How do I get child view id from parent's OnClickListener?
I have a simple LinearLayout with multiply Buttons inside. 我有一个简单的LinearLayout,里面有多个乘法按钮。
<LinearLayout android:id="@+id/parent">
<Button android:id="@+id/child_1">
<Button android:id="@+id/child_2">
<Button android:id="@+id/child_3">
...
</LinearLayout>
I set OnClickListener to parent LinearLayout and when I click on any child Buttons onClick method is called. 我将OnClickListener设置为父级LinearLayout,然后在单击任何子Button时调用onClick方法。 How I can know id of clicked Button? 我如何知道单击按钮的ID?
Note. 注意。 I don't want to set OnClickListener to each Button or add onClick="someMethod" in xml layout. 我不想为每个Button设置OnClickListener或在xml布局中添加onClick =“ someMethod” 。
maybe this will work 也许这会工作
make your activity implement View.OnClickListener interface 使您的活动实现View.OnClickListener界面
public class MyActivity extends Activity implements View.OnClickListener{
@Override
public void onCreate(Bundle savedInstanceState) {
Button child1 = (Button) findViewById(R.id.child_1);
child1.setOnClickListener(this);
Button child2 = (Button) findViewById(R.id.child_2);
child1.setOnClickListener(this);
}
}
and then override onClick method 然后覆盖onClick方法
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.child_1:
// do something when child 1 is clicked
break;
case R.id.child_2:
// do something when child 2 is clicked
break;
}
}
If you have many buttons then I would suggest a ListView/ RecyclerView and handle the click once based on the position 如果您有很多按钮,那么我建议您使用ListView / RecyclerView并根据位置处理一次单击
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.