Comment utiliser onCreateOptionsMenu() de l'Activité Qui s'est Étendu ListActivity
J'ai un problème sur mon android app de projet.
J'ai un MainActivity qui est ci-dessous:
public class MainActivity extends ListActivity {
private NotesDataSource datasource;
List<NoteItem> notesList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datasource = new NotesDataSource(this);
refreshDisplay();
}
private void refreshDisplay() {
notesList = datasource.findAll();
ArrayAdapter<NoteItem> adapter = new ArrayAdapter<NoteItem>(this, R.layout.list_item_layout, notesList);
setListAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
}
Et Aussi, j'ai un menu_main.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item android:id="@+id/action_create"
android:title="@string/action_create"
android:orderInCategory="100"
app:showAsAction="always|withText"
android:icon="@drawable/create_note"/>
</menu>
À ce stade, le problème est de commencer. J'ai changé mon super-classe de ActionBarActivity à ListActivity ensuite, quand je lance mon appli sur mon appareil, je ne vois pas mon créer une icône (et le menu du haut qui comprennent le nom de l'application). Quel est le problème? Et l'idée?
(Btw, je suis en utilisant Android Studio Ide)
OriginalL'auteur Mehmet | 2014-12-21
Vous devez vous connecter pour publier un commentaire.
Votre thème est probablement toujours basé sur
Theme.AppCompat
. Si vous souhaitez utiliserTheme.AppCompat
, vous devez hériter deActionBarActivity
. Si vous souhaitez utiliserListActivity
, vous ne pouvez pas utiliserTheme.AppCompat
.Notez que vous n'avez pas besoin d'utiliser
ListActivity
d'avoir unListView
dans une activité. Voici un exemple de projet en démontrant l'utilisation deTheme.AppCompat
avec unActionBarActivity
et unListView
. Voici un autre exemple de projet, la même que la précédente, sauf que j'ai appliquer la coutume des teintes à la barre d'action.C'est parce que vous n'utilisez pas
setListAdapter()
avecActionBarActivity
. Il n'y a pas desetListAdapter()
surActionBarActivity
, comme vous pouvez le constater en examinant la documentation deActionBarActivity
. Comme je l'ai écrit dans ma réponse, soit changer votre thème et de l'utilisationListActivity
, ou revenir àActionBarActivity
et de traiter avec votreListView
comme vous le feriez pour tout autre widget.Donc, dois-je changer le thème? Parce que j'ai suivi un tuto et j'ai besoin d'utiliser setListAdapter()
OriginalL'auteur CommonsWare