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;
}