Noob Android开发人员在这里我比图片更多的图形,但我想我会开始做更多的编码。无论如何,我的主活动页面上有一些按钮,我想要它,所以当单击按钮时,它会打开另一个类/活动。我已经尝试了所有我查找过的方法但仍然无法正常工作,当我点击模拟器中的按钮时它什么也没做,不会强制停止或什么都没有,有人指出我在右边方向请。
按钮所在主页的代码:
public class StartingPoint extends Activity {
protected void onCreate(Bundle aim) {
super.onCreate(aim);
setContentView(R.layout.main);
final Button bSL = (Button) findViewById(R.id.bSongList);
bSL.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent SongList = new Intent(StartingPoint.this, SongList.class);
StartingPoint.this.startActivity(SongList);
}
});
}
}
清单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="myname.appname"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar" >
<activity
android:name=".Splash"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="myname.appname.SPLASH" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".StartingPoint"
android:label="@string/app_name" >
<intent-filter>
<action android:name="myname.appname.STARTINGPOINT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".SongList"
android:label="@string/app_name" >
<intent-filter>
<action android:name="myname.appname.SONGLIST" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
-L
Last 3 lines of logcat just after clicking the button in question.
01-02 21:59:50.473: I/ActivityManager(75): Starting: Intent { cmp=myname.appname/.SongList } from pid 681
01-02 21:59:52.953: I/ActivityManager(75): Displayed myname.appname/.SongList: +2s351ms
01-02 21:59:58.565: D/dalvikvm(348): GC_EXPLICIT freed 8K, 55% free 2591K/5703K, external 1625K/2137K, paused 520ms
答案 0 :(得分:4)
试试这个:
Intent songList = new Intent(StartingPoint.this, SongList.class);
startActivity(songList);
你有任何错误吗?您需要在清单中添加您创建的每个活动。如果你有两个活动而且清单中只有Main,那可能就是你的问题。
第二个想法,我相信你的表现是错误的。检查一下。使用Main(您的起点)和Menu是第二个:
<activity android:name="com.activities.Main">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.activities.Menu"></activity>
试试这个清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="myname.appname"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar" >
<activity
android:name=".Splash"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".StartingPoint"
android:label="@string/app_name" >
</activity>
<activity
android:name=".SongList"
android:label="@string/app_name" >
</activity>
</application>
</manifest>
您无需在每个活动上添加过滤器。我知道你只有一个条目活动,那就是启动画面。但是,您可能需要更改清单以将“.Splash”和其他每个Activity更改为包括包的完整路径。
答案 1 :(得分:1)
//你的SongList的包名是什么
正如您的日志猫所示
01-02 21:59:50.473: I/ActivityManager(75): Starting: Intent { cmp=myname.appname/.SongList } from pid 681
01-02 21:59:52.953: I/ActivityManager(75): Displayed myname.appname/.SongList: +2s351ms
//在manifest.xml中的活动中使用完整包名称
<activity
android:name="myname.appname.SongList"
android:label="@string/app_name" >
</activity>
答案 2 :(得分:1)
您的活动未启动,因为其中包含NullPointerException。 (第10行)。当您对布局中不存在的内容执行findViewById时,很有可能。
面对这类问题时,阅读红线通常很有帮助。它基本上说:“嘿!当你试图启动它时,你在SongList第10行中有一个空对象!”
ImageView ivlogo = (ImageView) findViewById(R.id.ivsonglogo);
ExpandableListView elv1 = (ExpandableListView) findViewById(R.id.elv1);
这永远不会奏效。这是在对象初始化期间完成的,远在调用onCreate之前,因此在调用setContentView之前很久。
您必须在设置视图后初始化小部件。
答案 3 :(得分:0)
Intent SongList = new Intent(StartingPoint.this, SongList.class);
startActivity(SongList);
并在Manifest中输入此
<application .....>
<activity android:name=".CustomSurfaceView"></activity>
</application>
答案 4 :(得分:0)
对于代码,试试这个:
Intent songListIntent = new Intent(this, SongList.class);
StartingPoint.this.startActivity(songListIntent);
对于清单:
<activity android:name=".SongList"></activity>