Android:如何捕捉线性布局中任何按钮的点击?
我的布局如下:Android:如何捕捉线性布局中任何按钮的点击?,android,button,android-linearlayout,onclicklistener,Android,Button,Android Linearlayout,Onclicklistener,我的布局如下: <LinearLayout android:id="@+id/group_button_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center" android:layout_centerHoriz
<LinearLayout
android:id="@+id/group_button_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center"
android:layout_centerHorizontal="true">
<Button
android:id="@+id/group_button_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:text="Week"/>
<Button
android:id="@+id/group_button_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:padding="0dp"
android:text="Month"/>
<Button
android:id="@+id/group_button_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:text="Quarter"/>
<Button
android:id="@+id/group_button_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:text="Half Year"/>
</LinearLayout>
我认为点击按钮后会触发onClick事件:
private void initViews() {
mGroupedButtonLayout = (LinearLayout) findViewById(R.id.group_button_layout);
}
private void initListeners() {
mGroupedButtonLayout.setOnClickListener(mButtonGroupListener);
}
private View.OnClickListener mButtonGroupListener = new View.OnClickListener() {
public void onClick(View v) {
Logger.d("Clicked");
Logger.d(String.valueOf(v.getId()));
// do something when the button is clicked
}
};
是否可以捕获每个按钮上的onClick事件,而无需为每个按钮创建侦听器?您可以为按钮设置
android:onClick
属性,并使用指向它的方法处理逻辑
XML
您可以在线性布局
组按钮布局上设置setonclicklistner。setonclicklistner()代码>像这样,您可以创建一个setonclicklistner();并将其引用到所有按钮。在那一个setonclicklistner()中;您自己决定单击哪个按钮。在这里您可以找到您想要的答案:您可以在某种循环中设置每个按钮的onclicklisteners
<Button
android:id="@+id/group_button_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:text="Week"
android:onClick="doButtonClick"/>
public void doButtonClick(View v) {
switch(v.getId()) {
case R.id.group_button_1:
//do whatever for this button
break;
default:
break;
}