我在Java(Android)写作中遇到了非常基本的问题。在这里,我有代码:
public void WriteValue (View sender){
Button bt=(Button)sender;
}
当用户点击按钮时执行WriteValue。现在我想比较用户点击的按钮,我知道的按钮。像
这样的东西 if(UserButton==ClearButton) Display.setText("0");
感谢您的帮助 TUX:)
答案 0 :(得分:2)
您可以只比较ID .-
public void WriteValue (View sender) {
Button bt = (Button)sender;
if(bt.getId() == R.id.clearButtonId) {
Display.setText("0");
}
}
答案 1 :(得分:0)
第1步:使您的类实现OnClickListener
第2步:
// global variable
Button btOne ,bTwo;
第3步:
// in onCreate() method
btOne = (Button)findViewById(R.id.btOne);
btTwo = (Button)findViewById(R.id.btTwo);
btOne.setOnClickListener(this);
btTwo.setOnClickListener(this);
第4步:从接口
实现方法puvlic void onClick(View v)
{
if(v==btOne)
{
// do work for btone
}
if(v==btTwo)
{
// do work for btTwo
}
}
答案 2 :(得分:0)
您无需在此处View
投射Button
。您可以简单地获取id
点击的View
param
发送给该函数(假设这是xml中定义的onClick()
函数,或者设置{ Java中的{1}}。所以它可能是这样的
listener
您也可以使用 public void WriteValue (View sender)
{
int id = sender.getId(); // get the id of the View clicked
swith (id) // switch logic on that id
{
case (R.id clearButtonId): // if the clearButton was clicked do this
Display.setText("0");
break;
default:
Display.setText("Some other String);
break;
}
}
代替if/else
,但这更具可读性,恕我直言。这很容易让您为其他switch
添加更多逻辑。
还要考虑使用Java命名约定。根据此代码,我假设Button
是Display
或TextView
,因此它应以小写字母开头(例如EditText
)。