Avancé con mi desarrollo en aplicaciones de Android y ahora he agregado una nueva actividad que se activa presionando en un elemento de vista de lista.Nueva actividad - Nuevo menú
El problema
Mi nueva actividad muestra el menú de mi actividad principal. Esto es bastante inesperado. La pregunta es, ¿cómo puedo resolver esto?
¿Qué he hecho hasta ahora
En mi actividad principal, han creado un menú (menu.xml) que se añade la siguiente manera:
@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);
}
}
Esto funciona como se esperaba.
Ahora empezar la nueva actividad como esta:
//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);
}
});
La actividad comienza, tengo mi información del objeto Bundle conmigo y en la nueva actividad que necesito un nuevo menú (detail_menu.xml). luego poner en práctica este de la misma manera que antes:
@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);
}
}
El contenido de 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>
El contenido de 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 para explicación. podría agregar los 'menu.xml' y' detail_menu.xml', para que los archivos adjuntos con la pregunta sean más claros. –
Actualicé las preguntas con el xml. – Repox
@Repox solo algunas preguntas 1. ¿Intentó limpiar (menú Proyecto-> Limpiar ...) el Proyecto 2. por qué está usando 'myIntent.setClassName (" dk.jyskebank.programserie.tolvsytten "," dk.jyskebank.programserie .tolvsytten.DetailedActivity ");' not 'myIntent = new Intent (this, DetailedActivity.class);'? – Selvin