1

我为此挠头,真的想不出我做错了什么。我在我的主要活动布局中实现了一个按钮,如下所示:

<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

4 回答 4

0

这是因为您可能试图访问一个视图,该布局实际上是在另一个视图或活动上膨胀的,可能由适配器膨胀,用于列表视图。检查您充气的布局是否正确,然后重试。

于 2014-01-27T17:16:58.947 回答
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 。它有效吗?

于 2013-04-27T18:53:07.463 回答
0

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

它将作为魅力发挥作用。

于 2013-04-27T19:13:08.917 回答
0

您的按钮是某个父视图或布局的子视图吗?有可能点击事件已经被父布局消费了。尝试将您的按钮设置为

android:clickable="true"
于 2013-04-27T19:25:28.763 回答