Android按钮比较

时间:2013-11-02 23:11:48

标签: java android button compare

我在Java(Android)写作中遇到了非常基本的问题。在这里,我有代码:

public void WriteValue (View sender){
   Button bt=(Button)sender;
}

当用户点击按钮时执行WriteValue。现在我想比较用户点击的按钮,我知道的按钮。像

这样的东西
 if(UserButton==ClearButton) Display.setText("0");

感谢您的帮助 TUX:)

3 个答案:

答案 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命名约定。根据此代码,我假设ButtonDisplayTextView,因此它应以小写字母开头(例如EditText)。