我有一个简单的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>
我将OnClickListener设置为父LinearLayout,当我点击任何子按钮onClick方法被调用。我如何知道点击按钮的ID?
请注意。我不想将OnClickListener设置为每个Button或在xml布局中添加 onClick =“someMethod”。
答案 0 :(得分:0)
也许这会起作用
让您的活动实现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);
}
}
然后覆盖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;
}
}
如果您有许多按钮,那么我建议使用ListView / RecyclerView并根据位置处理一次点击