开发者

Android default button-listener?

I have 26 Buttons on my activity (alphabet). For all of them I want to have the same onclick-listener. Is there another way to set the "default-o开发者_如何学运维nlick-listener" for all buttons, without set them via button.setOnClickListener(...)?

Would be great.

Thanks


In your layout, you can specify android:onClick for each button. Also, since this is just another attribute, you can also specify this in a style or Theme, effectively setting all of them at once.

The drawback to doing this as a theme is that the onClick will be applied to ALL views. Probably not what you want. So, I'd suggest just specifying android:onClick on each button.

Another approach would be to create a custom view that extends from Button and provides the common onClick functionality there.

Here is an example of using the android:onClick approach. In your layout, define your buttons and supply the onClick value:

<Button
    android:id="@+id/button1"
    android:tag="a"
    android:onClick="doSomething"
    ... />

<Button
    android:id="@+id/button2"
    android:tag="a"
    android:onClick="doSomething"
    ... />

<Button
    android:id="@+id/button3"
    android:tag="b"
    android:onClick="doSomething"
    ... />

And your activity would have the doSomething method:

public void doSomething(View v) {
    // in here, we can branch off based on the ID or the tag.
    switch (v.getId()) {
    case R.id.button1:
        // something
        break;
    case R.id.button2:
        // something
        break;
    case R.id.button3:
        // something
        break;
    }

    if (v.getTag() != null && v.getTag().equals("a")) {
        // do something for the button's tagged with 'a'
    }
}


try unsing the android:onClick="myOnClickListener" property within your layout xml.

Example:

<Button 
  android:text="A"
  android:id="@+id/ButtonA"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:onClick="MyOnClickListener">
</Button>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜