android按钮onClick在xml引用参数中

时间:2012-06-02 17:00:15

标签: android

仅用于学习目的

<Button 
android:id="@+id/button"
android:text=""
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:onClick="updateTime"/>


public class MainActivity extends Activity {
Button btn;

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    btn = (Button) findViewById(R.id.button);
    updateTime(btn);

}

public void updateTime(View b) {
    btn.setText(new Date().toString());
}

}

如果查看b它是对btn的引用,如何传递它

视图? 我试过像

public void updateTime(Button b) {
    b.setText(new Date().toString());
}

但它不起作用 你能帮帮我吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

你试过了吗?

public void updateTime(View b) {
    ((Button)b).setText(new Date().toString());
}

来自documentation

  

此名称必须与仅采用一个的公共方法相对应   View类型的参数

因此,如果您在xml布局中将updateTime定义为单击动作侦听器,那么您的回调必须与签名public void updateTime(View v)匹配,这意味着您不能将其声明为接受Button作为参数。

此外,android:onClick仅适用于API级别4及更高版本,因此,如果您的API级别低于此级别,则必须在代码中声明Click动作侦听器。