【问题标题】:Why does one of these onClickListerners work but not the other?为什么其中一个 onClickListerners 有效,而另一个无效?
【发布时间】:2013-12-04 22:45:31
【问题描述】:

startBubbles 有效。检查器没有。如果您愿意,我可以发布setAll()countDown.start(),但正如我所说,一切正常。是否有任何原因检查器不应该工作?

OnClickListener startBubbles = new OnClickListener(){

    @Override
    public void onClick(View arg0) {
        setAll();
        countDown.start();
    }

};

OnClickListener checker = new OnClickListener(){

    @Override
    public void onClick(View v) {
        String choice = ((Button)v).getText().toString();
        if(choice.equals(matcher.getText().toString())){
            a++;
            setAll();
        }else {
            ((Button)v).setText("Wrong!");
        }

    }

};

过去一切正常,但后来我尝试进行一些更改(为了更好),但做不到,并试图回溯。整理了一个小时的问题。除了这个,一切都很好。

logcat 中没有显示任何错误。

【问题讨论】:

  • 那么当你点击checker时会发生什么?什么都没有?
  • 您可能已注释掉或不小心删除了您的 object.setOnClickListener(checker); 行。
  • @Szymon 是的,没什么
  • @pasta12 不,没关系
  • 你确定。并且您确定将其设置为正确的对象并单击正确的对象。因为如果你做一个登录检查器并没有得到任何对我说的东西,那么你就错了。

标签: android onclicklistener android-button


【解决方案1】:

创建两个OnClickListener 对象效率低下。我通常会尽可能避免不必要地创建对象。

我使用的一个常见模式是让Activity 类实现OnClickListener

public class MyActivity extends Activity implements OnClickListener {

    private Button button1; 
    private Button button2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      button1 = (Button)findViewById(R.id.button1);
      button1.setOnClickListener(this);
      button2 = (Button)findViewById(R.id.button2);
      button2.setOnClickListener(this);
    }

    ...

    @Override
    public void onClick(View v) {
      if (v == button1) {
        // do something
      }
      else if (v == button2) {
        // do something else
      }

    }
}

【讨论】:

    【解决方案2】:

    我认为您没有指定链接 onClick 的按钮试试这个

    yourButton=(Button) findViewById(R.id.yourbutton);
    yourButton.setOnClickListener(new OnClickListener() {
    
            public void onClick(View v) {
                setAll();
        countDown.start();
                            }
                        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 2023-03-21
      • 2023-03-17
      • 1970-01-01
      • 2011-02-11
      • 2015-04-26
      相关资源
      最近更新 更多