如何在android的所有按钮的FocusChange上调用特定的函数?

时间:2010-09-24 05:39:12

标签: android button focus

通过在xml中设置其onClick属性,可以指定在单击按钮时要调用的特定函数:                    android:onClick="function_name" 我想为FocusChange的按钮做类似的事情,这可能吗?

具体来说,我希望在对焦时增加按钮的大小,并在未对焦时使其大小正常。要将它应用于我的所有按钮,我希望调用一个特定的函数来执行此操作,然后在我的style.xml中指定此函数名称。但是android中没有onFocusChange属性。

当我在代码中分别为每个按钮添加override onSetFocusChangeListener时,它可以工作。但还有其他解决方案吗?

请帮助。

-Kiki

1 个答案:

答案 0 :(得分:1)

Handling UI Events you need to implement event listeners.

// Create an anonymous implementation of OnClickListener
private OnClickListener mCorkyListener = new OnClickListener() {
    public void onClick(View v) {
      // do something when the button is clicked
    }
};

您可以使用项目选择器指定按钮的状态:

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:drawable="@drawable/l_bar_default3" /> <!-- pressed -->
     <item android:state_focused="true"
           android:drawable="@drawable/l_bar_default3" /> <!-- focused -->
     <item android:drawable="@drawable/l_bar_pressed3" /> <!-- default -->
 </selector>