OnClickListener崩溃应用程序

时间:2012-05-11 07:17:38

标签: android android-activity

我正在学习android开发。我创建了一个由按钮(id:button1)组成的简单布局。我在这个按钮上添加了一个OnClickListener,单击该按钮会显示下一页(布局)。代码中似乎没有错误,但是当我运行它时,它只会崩溃。我尝试使用android 2.3.3和2.2模拟器,但没有成功。当我注释掉onclicklistener部分时,应用运行。 我搜索了各种网站和问题,但没有成功。 这是java代码:

package com.sid.next;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class mySplash extends Activity {
    /** Called when the activity is first created. */

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final Button b1 = (Button)findViewById(R.id.button1);
        b1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                startActivity(new Intent("com.sid.next.SHOWMENU"));
            }
        });

    }
}

EDIT1:  stacktrace

编辑2: main.xml

编辑3:[已解决!]我没有为myMenu.java活动设置任何内容视图。不管怎样,谢谢!

edit4:将 android.R.id.button1 更改为 R.id.button1

5 个答案:

答案 0 :(得分:1)

替换

 final Button b1 = (Button)findViewById(android.R.id.button1);

人:

 final Button b1 = (Button)findViewById(R.id.button1);

R 取代 android.R

答案 1 :(得分:1)

好。所以最后我自己弄清楚了! 我没有为myMenu.java类设置任何contentView。

还将 android.R.id.button1 更改为 R.id.button1 。 (信用:Imran Rana)

谢谢大家!

答案 2 :(得分:0)

如果SHOWMENU是一个Activity,则在Manifest File中声明。

根据给定的数据,我认为这是您的选择。

<activity
        android:name=".SHOWMENU"
        android:label="@string/app_name" />

<application > </application>文件

中的AndroidManifest.xml标记内添加内容

只需复制并粘贴xml

即可
<application
    android:icon="@drawable/icon"
    android:label="@string/app_name" >
    <activity
        android:name="com.sid.next.SHOWMENU"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name="com.sid.next.SHOWMENU"
        android:label="@string/app_name" />
</application>

答案 3 :(得分:0)

Rathter以这种方式调用活动

startActivity(new Intent("com.sid.next.SHOWMENU"));

试试这种方式

Intent g = new Intent(new Intent(mySplash .this, SHOWMENU.class));
            startActivity(g);

答案 4 :(得分:0)

试试这个

Intent i = new Intent(new Intent(CURRENT_SCREEN_NAME.this, NEXT_SCREEN_NAME.class));
startActivity(i);

并且不要忘记在活动下方的清单中写下这个。

<activity android:name=".NEXT_SCREEN_NAME" ></activity>