单击Android中的监听器按钮不起作用

时间:2012-01-16 15:47:03

标签: android user-interface button onclick listener

我的android点击监听按钮有一些非常奇怪的麻烦!我已经做了好几次,我为这个错误找不到解决方案(既不是合乎逻辑的解释)而疯狂。

错误 我的活动上的2个按钮的事件处理程序未被执行。没有错误,它只是在运行时不执行处理程序操作。这是其中一个按钮的代码:

btnNext = (Button) findViewById(R.listclient.btnnext);
btnNext.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Toast.makeText(MyActivityClassName.this, "Flag 01", 1).show();
                            btnNext.setText("CLICKED!");
        }
    });

这就是xml布局上的按钮:

<Button android:id="@+listclient/btnnext"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:clickable="true"
            style="@style/Widget.TextViewInfo"
            android:text="Next"
            />

信息

  • 此活动中还有一个ImageButton,此imageButton与内部OnClickListener类完美配合(就像这个一样)。
  • 我已经尝试让我的活动类继承OnClickListener并将其设置为按钮的单击侦听器但没有成功。
  • 我还在Activity类中创建了一个类,并将其设置为按钮单击侦听器,也没有成功。

我正在为Android 2.1 + Google API(SDK 7)进行编译

------------ EDITED -----------------

如果我输入我的代码:

btnNext.performClick();

它被执行了!我现在变得非常疯狂! 当我触摸按钮时,实际上点击了按钮,我可以看到按钮“动画”,并且点击记录在LogCat中。

2 个答案:

答案 0 :(得分:8)

指定或使用ID时,您无法使用listclient。第一部分是资源的类型,在您的情况下必须是id

android:id="@+listclient/btnnext"更改为android:id="@+id/btnnext"。还要调整代码:

btnNext = (Button) findViewById(R.id.btnnext);

答案 1 :(得分:0)

快速浏览一下代码,我注意到你没有正确地调用findViewById。将Button的ID更改为“test”,然后尝试:findViewById(R.id.test)。有意义吗?