Le lancement de l'activité à partir d'android menu options

J'ai regardé à travers ces forums pour trouver une solution à ce problème, et même si il semble y avoir des solutions, aucune ne semble fonctionner pour moi. Donc, ici, va.

Je suis un newbie de développement Android. J'ai une application avec un menu d'options. Quand je clique sur une des options, je le veux pour le lancement d'une nouvelle activité - mais je reçois l'erreur

Intent cannot be resolved to a type

dans home.java sur la ligne:

Intent intent = new Intent(this, about.class);

Ci-dessous est tout de mon code qui, je crois, est pertinente. S'il vous plaît laissez-moi savoir si vous avez besoin de voir autre chose. Comme je l'ai dit, j'ai essayé de suivre d'autres questions, mais aucun d'entre eux semblent fonctionner pour moi (comme dans le code ci-dessous semble fonctionner pour tout le monde). Toute aide serait génial.

J'ai mon menu défini dans res/menu/main_menu.xml par:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/home"
          android:icon="@drawable/ic_menu_home"
          android:title="@string/home" />
    <item android:id="@+id/about"
          android:icon="@drawable/ic_menu_about"
          android:title="@string/about" />
</menu>

J'ai deux activités - home.java et about.java. Home.java c'est l'activité qui est lancé lorsque l'application est lancée et est illustré ci-dessous.

package ca.example.home;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

public class home extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main_menu, menu);
        return true;
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        //Handle item selection
        switch (item.getItemId()) {
        case R.id.home:
            return true;
        case R.id.about:
            Intent intent = new Intent(this, about.class);
            startActivity(intent);
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }

}

About.java est la nouvelle activité à être lancé et est illustré ci-dessous:

package ca.brianmccain.nbla;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;

public class about extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about);
    }
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main_menu, menu);
        return true;
    }
}

J'ai changé le manifeste:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="ca.example.home"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
        <activity android:name=".home"
                  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=".about">
        </activity>
    </application>
</manifest>

OriginalL'auteur bpmccain | 2011-07-11