Я продолжил разработку приложений для Android и добавил новое действие, которое активируется нажатием на элемент списка.
Проблема
Моя новая активность показывает меню из моей основной деятельности. Это довольно неожиданно. Вопрос, как я могу решить это?
Что я сделал до сих пор
В своей основной деятельности я создал меню (menu.xml), которое добавляется так:
@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);
}
}
Это работает как ожидалось.
Теперь я начинаю новое занятие так:
//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);
}
});
Действие начинается, у меня есть информация от объекта Bundle, и в новом задании мне нужно новое меню (detail_menu.xml).
Затем я реализую это так же, как и раньше:
@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);
}
}
Содержимое 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>
Содержимое файла 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>