【问题标题】:get which button clicked on android widget获取在android小部件上单击了哪个按钮
【发布时间】:2013-03-20 05:49:34
【问题描述】:

我有一个小部件,其设计现已完成,由 4 个按钮组成,我想获取单击了小部件上的哪个按钮,并根据单击的按钮将值传递给我对其采取必要操作的服务.

【问题讨论】:

  • 你想做什么..你是否想得到被点击的按钮的文本..
  • 我需要在另一个可访问的类中调用一个公共方法,我已经完成了这一切,但现在我只需要在小部件按钮上获取 onClick,然后根据我调用的单击按钮一种方法。
  • 因此,如果您获得基于该文本单击的按钮的文本,则可以正确调用所需的方法。如果是,我将为此发布代码。
  • 是的,请!您可以发布代码示例

标签: android android-widget android-service


【解决方案1】:

你的代码应该是这样的

    public class MainActivity extends Activity implements  OnClickListener {
    Button btn0,btn1,btn2,btn3;

       btn0.setOnClickListener(this);
    btn1.setOnClickListener(this);
    btn2.setOnClickListener(this);
    btn3.setOnClickListener(this);
     }
      @Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    if(btnrunclick=true)
    {
        Button b = (Button)v;
        buttonText = b.getText().toString();// this will return button text which is clicked
        if(buttonText..equalsIgnoreCase("your text"))
      {
         //call required method for that button

          }
         else if(buttonText.equalsIgnoreCase("next button text"))               
    {
         //call required method for that button

          }

    }       
}

【讨论】:

  • 我需要在 Widget 中实现这一点!
【解决方案2】:

您可以通过实现View.OnClickListener 并将其分配给您喜欢的所有 4 个按钮来做到这一点。我还没有尝试过,但也许你可以试一试:-

View.OnClickListener listener = new View.OnCLickListener () {
    public void onClick(View v) {
        if (v instanceof Button && (Button) v == btn1) {
            // Do something
        } else if (v instanceof Button && (Button) v == btn2) {
            // Do something
        }
    }
}
btn1.setOnClickListener(listener);
btn2.setOnClickListener(listener);

【讨论】:

    猜你喜欢
    • 2012-01-11
    • 1970-01-01
    • 2014-06-21
    • 2013-03-14
    • 2013-01-25
    • 2017-06-04
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多