Tôi đã tiếp tục với sự phát triển của mình trong các ứng dụng Android và hiện đã thêm một hoạt động mới được kích hoạt với báo chí trên một mục listview.Hoạt động mới - Menu mới
Vấn đề
hoạt động mới của tôi hiển thị trình đơn từ hoạt động chính của tôi. Điều này là khá bất ngờ. Câu hỏi là, làm cách nào tôi có thể giải quyết vấn đề này?
Tôi đã làm gì cho đến nay
Trong hoạt động chính của tôi, tôi đã tạo ra một menu (menu.xml) được bổ sung như sau:
@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);
}
}
này hoạt động như mong đợi.
Bây giờ tôi bắt đầu hoạt động mới như thế này:
//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);
}
});
Các hoạt động bắt đầu, tôi có thông tin của tôi từ đối tượng Bundle với tôi và trong hoạt động mới Tôi cần một trình đơn mới (detail_menu.xml). sau đó tôi thực hiện điều này theo cùng một cách như trước:
@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);
}
}
Nội dung của 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>
Nội dung của 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 để được giải thích. bạn có thể vui lòng thêm 'menu.xml' và' detail_menu.xml' để các tệp đính kèm có câu hỏi trở nên rõ ràng hơn không. –
Tôi đã cập nhật các câu hỏi bằng xml. – Repox
@Repox chỉ vài câu hỏi 1. Bạn đã thử làm sạch (menu Project-> Clean ...) dự án 2. tại sao bạn đang sử dụng 'myIntent.setClassName (" dk.jyskebank.programserie.tolvsytten "," dk.jyskebank.programserie .tolvsytten.DetailedActivity ");' không 'myIntent = new Intent (this, DetailedActivity.class);'? – Selvin