0

我正在学习安卓开发。我创建了一个由按钮 (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"));
            }
        });

    }
}

编辑1:堆栈 跟踪

编辑2: main.xml

Edit3:[已解决!]我没有为 myMenu.java 活动设置任何内容视图。不管怎么说,多谢拉!

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

4

5 回答 5

1

代替

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

经过:

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

那就是用R替换android.R

于 2012-05-11T09:26:44.613 回答
1

好的。所以最后我自己想通了!我没有为 myMenu.java 类设置任何 contentView。

还将android.R.id.button1更改为R.id.button1。(信用:伊姆兰拉纳)

谢谢大家!

于 2012-05-12T07:00:30.517 回答
0

如果SHOWMENU是活动,则在清单文件中声明。

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

<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>
于 2012-05-11T07:26:00.150 回答
0

宁愿以这种方式调用活动

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

试试这个方法

Intent g = new Intent(new Intent(mySplash .this, SHOWMENU.class));
            startActivity(g);
于 2012-05-11T07:44:47.557 回答
0

尝试这个

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

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

<activity android:name=".NEXT_SCREEN_NAME" ></activity>
于 2012-05-11T07:53:36.550 回答