从触发onclick的视图中获取信息?

时间:2012-12-29 02:50:21

标签: android textview gettext settext

我是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,如果单击2 calc.getText() + "1",则会does calc.getText() + "2"。我不知道如何获取点击视图的文本。我试过这个:t.setText( calc.getText() + this.getText() );没有用。这是怎么做到的?

2 个答案:

答案 0 :(得分: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());
}

由于我们知道ButtonView的子类,并且getText()方法适用于按钮,因此我们可以创建一个新变量并将View参数转换为a Button,来自class casting。从那里我们可以使用所有Button方法并继续执行。

答案 1 :(得分: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 );