0

仅用于学习目的

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

}

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

作为视图?我试过像

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

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

提前致谢。

4

1 回答 1

1

你有没有尝试过:

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

文档中:

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

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

此外,android:onClick仅适用于 API 级别 4 及更高级别,因此如果您的目标 API 级别低于该级别,则必须在代码中声明单击操作侦听器。

于 2012-06-02T17:06:05.973 回答