android:onClick双击工作

时间:2014-07-11 01:29:09

标签: android xml eclipse adt bluestacks

我正在开发一个Android应用程序,Eclipse IDE + ADT,目标API编号为17,并在BlueStacks上进行调试。 我必须在单击按钮时触发某些操作,因为我在活动类中使用了一个方法,而在我使用的XML代码中:

    android:onClick="myCoolMethod"

它似乎工作正常,但它总是在第二次点击按钮后工作。 我的问题是: 鉴于属性,这应该是这种方式吗?如果是这样,是否有另一个属性响应第一次点击? 如果没有,为什么它没有响应第一次点击,我该怎么做才能解决它?

回应评论:

    public void myCoolMethod(View v){
    Button btn = (Button) findViewById(R.id.button1);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (v==findViewById(R.id.button1)){
            Intent inta = new Intent(MainActivity.this, datainsert.class);
            startActivity(inta);
            }
        }
   });

是的,它是一个独立的按钮。

2 个答案:

答案 0 :(得分:0)

您正在设置on click侦听器两次!从我的酷方法中删除on click侦听器,它将起作用

public void myCoolMethod(View v){
        Intent inta = new Intent(MainActivity.this, datainsert.class);
        startActivity(inta);
}

我希望你明白为什么会这样。首先在XML中设置onclick。然后在第一次单击发生后再次设置它(仅这一次以编程方式),以便它覆盖第一次onclick。因此,只有在第二次单击后才会发送意图。程序按预期运行。只需使用上面的代码来修复

答案 1 :(得分:-1)

这个按钮是否在ListView项目中?或者这个按钮是独立的吗? 有时它与ListView onItemClick冲突,类似于Checkbox和ListView onItemClick。

Button btnSearch = (Button) findViewById(R.id.button_Search);             
btnSearch.setOnClickListener( new View.OnClickListener() 
{           
    @Override
    public void onClick(View v) 
    {
        // Do Button Clicked    
    }           
});