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 it 即可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参数Button通过类转换转换为。从那里我们可以使用所有Button的方法并继续执行。

于 2012-12-29T02:54:28.417 回答
0

另一种方法是将 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 回答