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
Vous devez vous connecter pour publier un commentaire.
Vous devez importer l'intention de la classe.
Si vous obtenez une erreur similaire, et si vous utilisez eclipse,
appuyez sur Ctrl + Maj + O ("Organiser des importations") - cette recherche tous les besoins d'importations et les ajoute au fichier.
Hehe arrive à tout le monde. Ne soyez pas si dure avec vous-même. Heureux de codage. 🙂
OriginalL'auteur
Je viens de résoudre mon menu de problème. La page menu, seraient ouverts, mais quand j'ai cliqué sur une personne option de menu, il ne serait pas passer à la page suivante /activité.
C'était à cause d'une simple addition d'un "espace" à droite à la fin de l'instruction, après le "." juste avant l' +fromage j'ai supprimé l'espace et cela a fonctionné.
AVANT
Classe ourClass = la Classe.forName("com.exemple.androidtutorial2. "+fromage);
APRÈS
Classe ourClass = la Classe.forName("com.exemple.androidtutorial2." +fromage);
OriginalL'auteur user2070873