【问题标题】:android:onClick working on double clickandroid:onClick 双击工作
【发布时间】:2014-09-01 13:19:08
【问题描述】:

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

    android:onClick="myCoolMethod"

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

回应cmets:

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

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

【问题讨论】:

  • 不,这不是它应该的工作方式。我怀疑myCoolMethod() 有问题。请张贴其代码。我还建议设置断点或在myCoolMethod() 中添加Log.d() 调用以检查何时调用。
  • "myCoolMethod" 是线程还是简单的方法,你能把这个方法贴出来吗?

标签: android xml eclipse adt bluestacks


【解决方案1】:

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

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

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

【讨论】:

  • 我怀疑错误在那里,但我过去尝试修复它,随机错误开始在 logcat 中显示。但是,我再次尝试了aaaa和魔术!有效。谢谢,亲爱的你,好先生♥
【解决方案2】:

这个按钮是否在 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    
    }           
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-25
    • 2012-03-30
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2019-10-15
    相关资源
    最近更新 更多