Sono andato avanti con il mio sviluppo in applicazioni Android e ora ho aggiunto una nuova attività che viene attivata con una pressione su un elemento listview.Nuova attività - Nuovo menu
Il problema
mia nuova attività illustra il menu dalla mia attività principale. Questo è abbastanza inaspettato. La domanda è, come posso risolvere questo?
Che cosa ho fatto finora
Nella mia attività principale, ho creato un menu (menu.xml) che si aggiunge in questo modo:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.refresh:
new DownloadXmlTask().execute();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Questo funziona come previsto.
Ora comincio la nuova attività in questo modo:
//lv is (ofc) my listview
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
EntryObject obj = entries.get(position);
Bundle bundle = new Bundle();
bundle.putString("title", obj.title);
bundle.putString("teaser", obj.teaser);
bundle.putString("description", obj.description);
bundle.putString("date", obj.date);
bundle.putString("key", obj.key);
bundle.putString("mp4", obj.mp4);
Intent myIntent = new Intent();
myIntent.setClassName("dk.jyskebank.programserie.tolvsytten", "dk.jyskebank.programserie.tolvsytten.DetailedActivity");
myIntent.putExtras(bundle);
startActivity(myIntent);
}
});
L'attività inizia, io ho le mie informazioni dall'oggetto bundle con me e nella nuova attività ho bisogno di un nuovo menu (detail_menu.xml). Ho quindi implementare questo allo stesso modo di prima:
@Override
public boolean onCreateOptionsMenu(Menu detail_menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.detail_menu, detail_menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.share:
startSharing();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Il contenuto di menu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/refresh" android:icon="@drawable/ic_menu_refresh" android:title="@string/refresh" />
<item android:id="@+id/featured" android:icon="@drawable/ic_menu_home" android:title="@string/featured" />
<item android:id="@+id/most_recent" android:icon="@drawable/ic_menu_day" android:title="@string/most_recent" />
<item android:id="@+id/favorites" android:icon="@drawable/ic_menu_emoticons" android:title="@string/favorites" />
<item android:id="@+id/rated" android:icon="@drawable/ic_menu_star" android:title="@string/top_rated" />
<item android:id="@+id/menu_more" android:icon="@drawable/ic_menu_more" android:title="@string/more" />
</menu>
Il contenuto di detail_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/share" android:icon="@drawable/ic_menu_share" android:title="@string/share" />
</menu>
+1 per spiegazione. potresti aggiungere "menu.xml" e "detail_menu.xml", in modo che gli allegati con la domanda diventino più chiari. –
Ho aggiornato le domande con l'xml. – Repox
@Repox solo alcune domande 1. Hai provato a pulire (menu Progetto-> Pulisci ...) il Progetto 2. perché stai usando 'myIntent.setClassName (" dk.jyskebank.programserie.tolvsytten "," dk.jyskebank.programserie .tolvsytten.DetailedActivity ");' not 'myIntent = new Intent (this, DetailedActivity.class);'? – Selvin