2011-10-20 28 views
5

Android uygulamalarında geliştirmeme devam ettim ve şimdi bir liste görünümünde bir tuşla etkinleştirilen yeni bir etkinlik ekledim.Yeni etkinlik - Yeni menü

sorun

Benim yeni etkinlik benim ana faaliyetinden menüyü gösterir. Bu oldukça beklenmedik. Soru şu, bunu nasıl çözebilirim?

benim ana aktivitede bugüne kadar

ne yaptın, ben böyle ilave edildiği bir menü (menu.xml) yarattık: beklendiği gibi

@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); 
    } 
}  

Bu çalışır.

Şimdi böyle bir hareketlenme başlar:

//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); 

    } 
    }); 

etkinlik Yanımda Bundle nesneden bilgilerimi ve yeni aktivitede yeni bir menü (detail_menu.xml) ihtiyaç başlar.

@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 içeriği:

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

+1. "menu.xml" ve "detail_menu.xml" ifadelerini ekleyebilir misiniz? Böylece, söz konusu ekler daha net hale gelir. –

+0

Soruları xml ile güncelledim. – Repox

+0

@Repox sadece birkaç soru 1. Temizlediniz mi (menu Project-> Clean ...) Proje 2'yi neden yaptınız? MyIntent.setClassName ("dk.jyskebank.programserie.tolvsytten", "dk.jyskebank.programserie) .tolvsytten.DetailedActivity ");' myIntent = new Intent (this, DetailedActivity.class); '? – Selvin

cevap

0

yorumlarda temiz proje için iyi bir çözüm önerdi .... iyi ve bu yardımcı oldu :) Bana defalarca övünme: Kaynaklar R.java'da veya kaynaklarda olsa bile kaynak yok. jave, istediğim gibi değil, her zaman ... Her zaman temiz Yardım (veya R.java silmek)

Repox nasıl kullanılacağını bilir ve o "% 100 kabul oranı" tutmak neden bu yüzden benim cevap verdim burada :)

0

içeriği şişirme önce super.onCreateOptionsMenu(menu); arayarak deneyin Ondan önce bu aynı şekilde uygulamak senin menün

+0

Öneri için teşekkür ederiz, ama bu bir istisna neden oldu android.content.res.Resources $ NotFoundException: Kaynak ID # 0x7f070001 – Repox

0

Kodunuz güzel görünüyor. Projeyi yenilemeyi deneyin (paket gezgini içinden seçin ve F5 tuşlarına basın) ve temizleyin (pencere menüsünden Projesi> Temiz ... adresine gidin). Açıklama için