我一直试图让我的主菜单正常工作。我有2 Buttons
,我希望他们在点击时开始不同的活动。
这是我的代码
package com.example.clicktothink_1;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn= (Button)findViewById(R.id.play_btn);
Button btn1 = (Button)findViewById(R.id.howToPlay_btn);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,QuizActivity.class);
startActivity(intent);
}
});
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent1 = new Intent(MainActivity.this,HowActivity.class);
startActivity(intent1);
}
});
}
}
我已经在清单文件中声明了这两个活动。第一个Intent
工作
Intent intent = new Intent(MainActivity.this,QuizActivity.class);
然而第二个Intent
没有。知道如何让这个工作吗?
栈跟踪
org.xml.sax.SAXParseException; lineNumber: 19; columnNumber: 40; Open quote is expected for attribute "{1}" associated with an element type "android:parentActivityName".
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
at com.android.ide.common.xml.AndroidManifestParser.parse(AndroidManifestParser.java:612)
at com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper.parseUnchecked(AndroidManifestHelper.java:75)
at com.android.ide.eclipse.adt.internal.build.builders.PreCompilerBuilder.build(PreCompilerBuilder.java:467)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:734)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:358)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:381)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
这是清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
package="com.example.clicktothink_1"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
>
<activity
android:name="com.example.clicktothink_1.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="com.example.clicktothink_1.HowActivity"/>
<activity android:name="com.example.clicktothink_1.QuizActivity"/>
<activity android:name="com.example.clicktothink_1.ResultActivity"/>
</application>
</manifest>
答案 0 :(得分:-1)
试试这个:
public class MainActivity extends Activity implements View.OnClickListener {
private Button btn;
private Button btn1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.btn = (Button)findViewById(R.id.play_btn);
this.btn1 = (Button)findViewById(R.id.howToPlay_btn);
btn.setOnClickListener(this);
btn1.setOnClickListener(this);
}
public void onClick(View v) {
int id = v.getId();
if (id == this.btn.getId()) {
Intent intent = new Intent(this, QuizActivity.class);
startActivity(intent);
}
else if (id == this.btn1.getId()){
Intent intent1 = new Intent(this, HowActivity.class);
startActivity(intent1);
}
}
}
如果不起作用,请查看logcat。
答案 1 :(得分:-1)
if(check manifest file(androidmanifest.xml)){
if(check activity_main.xml(check all id are specified correctly)){
public void onClick(View v) {
switch(v.getId()){
case R.id.play_btn :
Intent intent = new Intent(MainActivity.this, QuizActivity.class);
startActivity(intent);
break;
case R.id.howtoplay_btn:
Intent intent = new Intent(MainActivity.this, HowActivity.class);
startActivity(intent);
break;
}
}
}else{
correct activity_main.xml
}
}else{
Delete android:layout_width and android:layout_height from the android:manifest.xml.
Your application will run.
If you want to know the reason read
[http://developer.android.com/guide/topics/manifest/manifest-intro.html] }