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

}

ビュー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 型のパラメーターを 1 つだけ取るパブリック メソッドに対応している必要があります。

そのため、xml レイアウトで updateTime をクリック アクション リスナーとして定義している場合、コールバックは signaturepublic void updateTime(View v)と一致する必要があります。つまり、Button を引数として受け入れると宣言することはできません。

また、android:onClickAPI レベル 4 以上でのみ機能するため、それ以下の API レベルをターゲットにしている場合は、コードでクリック アクション リスナーを宣言する必要があります。

于 2012-06-02T17:06:05.973 に答える