我是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() );
没有用。这是怎么做到的?
答案 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());
}
由于我们知道Button
是View
的子类,并且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 );