多个按钮开始不同的活动

时间:2014-09-29 14:54:46

标签: android android-intent

我一直试图让我的主菜单正常工作。我有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>

2 个答案:

答案 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]     }