【问题标题】:Android button comparingAndroid按钮比较
【发布时间】:2013-11-02 23:11:47
【问题描述】:

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

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

WriteValue 在用户单击按钮时执行。现在我想将用户点击的按钮与我知道的按钮进行比较。类似的东西

 if(UserButton==ClearButton) Display.setText("0");

感谢您的帮助 无尾礼服:)

【问题讨论】:

    标签: java android button compare


    【解决方案1】:

    你可以只比较 id。-

    public void WriteValue (View sender) {
        Button bt = (Button)sender;
        if(bt.getId() == R.id.clearButtonId) {
            Display.setText("0");
        }
    }
    

    【讨论】:

    • @user2948835 只要知道没有理由将额外的行转换为Button。您可以使用sender.getId()。如果这是最适合您的答案,请点击答案旁边的复选标记接受。
    【解决方案2】:

    第 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);
    

    第四步:从接口实现方法

    puvlic void onClick(View v)
    {
    if(v==btOne)
    {
    // do work for btone
    }
    if(v==btTwo)
    {
    // do work for btTwo
    }
    }
    

    【讨论】:

    • 比较ids比实际的object好。
    • 不确定什么? id 编译后不会改变
    • 我知道id不会改变,但我是说,不确定hashcode比较好还是id比较好
    【解决方案3】:

    您无需在此处将 View 转换为 Button。您可以简单地点击View 中的id,这是发送到函数的param(假设这是在xml 中定义的onClick() 函数或通过在Java 中设置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,但恕我直言,这更易读。这很容易让您为其他Buttons 添加更多逻辑。

    还可以考虑使用 Java 命名约定。根据这段代码,我假设DisplayTextViewEditText,所以它应该以小写字母开头(例如display)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 2017-07-23
      • 2015-03-02
      • 1970-01-01
      相关资源
      最近更新 更多