2011-10-20 3 views
5

필자는 안드로이드 어플리케이션 개발에 착수하여 이제는 목록보기 항목을 눌러서 활성화되는 새로운 활동을 추가했습니다.새로운 활동 - 새 메뉴

문제

내 새로운 활동 내 주요 활동에서 메뉴를 보여줍니다. 이것은 상당히 예상치 못한 결과입니다. 문제는 어떻게 해결할 수 있습니까?

는 내 주요 활동으로 지금까지

했을 무엇을, I는 다음과 같이 추가되는 메뉴 (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); 

    } 
    }); 

활동은 나와 함께 번들 객체에서 내 정보를 가지고 새로운 활동에 나는 새로운 메뉴 (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> 
+0

+1 설명을 위해. 'menu.xml'과'detail_menu.xml' 파일을 추가해 주시면 질문이있는 첨부 파일이 더 명확 해집니다. –

+0

xml로 질문을 업데이트했습니다. – Repox

+0

@Repox 단지 몇 가지 질문 1. 프로젝트를 깨끗하게 만들려고 했습니까 (Project Project -> Clean ...)? 2. myIntent.setClassName ("dk.jyskebank.programserie.tolvsytten", "dk.jyskebank.programserie .tolvsytten.DetailedActivity ");'not myIntent = 새로운 인 텐트 (this, DetailedActivity.class); – Selvin

답변

0

ok로 의견을 보내주세요. Repox를 Clean 프로젝트에 제안했습니다. .... 그리고 도움이 되셨습니다. :) R : 생성 된 R.java 또는 R.java 리소스에 있어도 리소스가 존재하지 않습니다. jave는 내가 원하는 ... exaclly가 아니라는 것을 가리 킵니다. 어쨌든 항상 깨끗하게 (또는 R.java를 삭제)

Repox는 SO를 사용하는 방법을 알고 있으며 그는 "100 % 수용율"을 유지합니다. 내 대답을 왜했는지 여기 :)

0

의 내용은 팽창하기 전에 super.onCreateOptionsMenu(menu);를 호출하려고 나는 그 전에로이 같은 방식으로 구현 당신의 메뉴.

+0

제안 해 주셔서 감사합니다. 그러나 이로 인해 android.content.res.Resources 예외가 발생했습니다. NotFoundException : 리소스 ID # 0x7f070001 – Repox

0

코드가 정상적으로 보입니다. 프로젝트를 새로 고치십시오 (패키지 탐색기에서 선택하고 F5). 그런 다음 청소하십시오 (창 메뉴에서 프로젝트> 치료 ...로 이동하십시오).