2011-10-20 29 views
5

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> 
+0

+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. –

+0

Tôi đã cập nhật các câu hỏi bằng xml. – Repox

+0

@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

Trả lời

0

ok trong các ý kiến ​​tôi đề nghị Repox để làm sạch dự án .... tốt và nó đã giúp :) Nó làm tôi rất nhiều lần: tài nguyên không tồn tại ngay cả khi chúng được tạo trong R.java hoặc tài nguyên trong R. jave điểm để không exaclly mà tôi muốn ... anyway Sạch luôn luôn giúp đỡ (hoặc xóa R.java)

Repox biết làm thế nào để sử dụng SO và ông wana giữ "100% tỷ lệ chấp nhận" đó là lý do tại sao tôi thực hiện phản ứng của tôi tại đây :)

0

thử gọi super.onCreateOptionsMenu(menu); trước lạm phát trình đơn của bạn.

+0

Cảm ơn bạn đã gợi ý, nhưng điều này gây ra một ngoại lệ android.content.res.Resources $ NotFoundException: ID tài nguyên # 0x7f070001 – Repox

0

Mã của bạn có vẻ ổn. Hãy thử làm mới dự án (chọn nó trong gói thám hiểm và nhấn F5) và sau đó làm sạch nó (đi đến Project> Clean ... từ menu cửa sổ).

Các vấn đề liên quan