0

我正在开发一个 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);
            }
        }
   });

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

4

2 回答 2

1

您正在设置点击监听器两次!从我很酷的方法中删除点击监听器,它会起作用

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

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

于 2014-07-11T23:35:59.963 回答
0

此按钮是否在 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    
    }           
});
于 2014-07-11T03:24:55.653 回答