0

私はJavaとAndroidにまったく慣れていません。チュートリアルを終了し、ロープを学ぶための簡単な計算機を作成しています。

私は基本的に次のような見方をしています:

<button android:onClick="addText" android:text="2" />

そして関数addTextはこれです:

public void addText(View view) { // Add view's text
    TextView calc = (TextView) findViewById(R.id.edit_text);
    t.setText( calc.getText() + ????? );
}

onclickすると、クリックしたボタンのテキストがTextViewに追加されます。1をクリックすると、calc.getText() + "1"2をクリックすると表示されますdoes calc.getText() + "2"。クリックしたビューのテキストを取得する方法がわかりません。私はこれを試しました: t.setText( calc.getText() + this.getText() );それはうまくいきませんでした。これはどのように行われますか?

4

2 に答える 2

1

あなたはこれを行うことができます:

public void addText(View view) { // Add view's text
  Button button = (Button) view; //casts the View into the Button class
  TextView calc = (TextView) findViewById(R.id.edit_text);
  t.setText(calc.getText().toString() + button.getText().toString());
}

ButtonこれはのサブクラスでViewあり、メソッドはボタンで機能することがわかっているため、クラスキャストを使用しgetText()て、新しい変数を作成し、Viewパラメーターをに変換できます。そこから、すべてのメソッドを使用して実行を続行できます。ButtonButton

于 2012-12-29T02:54:28.417 に答える
0

もう1つの方法は、TAGオブジェクトをビューに設定することです。

Button mButtonCalcOne = (Button) findViewById(R.id.Button1);
mButtonCalcOne.setTag(1);

OnClickListener mButtonListener = new OnClickListener()
{
    @Override
    public void onClick( View v )
    {
        int lButtonValue = (Integer) v.getTag();   //DO STH WITH IT ; )
    };
}
mButtonCalcOne.setOnClickListener( mButtonListener );
于 2013-02-15T13:59:33.940 に答える