尽管实现了单击侦听器,按钮仍然没有响应onclick

时间:2013-04-27 18:47:14

标签: android

我正在摸不着头脑,真的想不到我做错了什么。我在主要活动布局中实现了一个按钮,如下所示:

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:text="@string/calculate"
    android:textSize="13sp" />

在我的主要活动中,我将此按钮连接到按钮监听器,如下所示:

Button button = (Button) findViewById(R.id.button1);        
button.setOnClickListener(buttonListener);

调用我的按钮监听器:

private OnClickListener buttonListener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent intent = new Intent (MainActivity.this, ResultsActivity.class);
        MainActivity.this.startActivity(intent);

    }
};

单击该按钮无法启动其他活动,我已在Android清单中正式声明...

当我点击按钮时,我可以在调试模式下看到以下条目进入LogCat:

04-27 19:06:31.402: D/GestureDetector(25925): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 3 mFalseSizeCnt:0

对这个问题有什么看法吗?任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:0)

尝试声明

      private class clicker implements OnClickListener{

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent intent = new Intent (MainActivity.this, ResultsActivity.class);
    startActivity(intent);
    }

}

然后

    Button button = (Button) findViewById(R.id.button1);        
        button.setOnClickListener(new clicker());

而不是新的OnClickListener。它有用吗?

答案 1 :(得分:0)

您是否使用任何手势检测器将滑动转换为事件,然后这就是发生此错误的原因,尝试注释掉手势列表器代码然后运行它。

它会起到魅力。

答案 2 :(得分:0)

您的按钮是否是某些父视图或布局的子视图?父布局可能已经使用了click事件。尝试将按钮设置为

android:clickable="true"

答案 3 :(得分:0)

这是因为您可能尝试访问视图,其中布局实际上在某个其他视图或活动上实际膨胀,可能会由适配器为列表视图充气。检查您膨胀的布局是否正确,然后重试。