2013-04-13 4 views
5

작업 표시 줄의 맨 위에 '항목 추가'버튼을 추가하려고합니다. (앱 아이콘 및 제목 오른쪽에 있음).탭과 메뉴가 이미있을 때 상단의 작업 표시 줄에 '추가 버튼'추가

작업 표시 줄 바로 아래에는 두 개의 탭이 있습니다. 또한 설정 메뉴에 대해 정의 된 메뉴 XML 파일이 있습니다.

액션 바가 메뉴 XML을 사용한다고 생각했습니다. 그래서 액션 바 메뉴 XML을 추가했지만 사용하면

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM); 
actionbar.setCustomView(R.menu.actionbar); 

내 프로그램이 충돌합니다. 내가 잘못하고 있다고 나는 믿는다.

내 액션 바의 XML은 :

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:id="@+id/item1" android:icon="@android:drawable/ic_menu_add"></item> 


</menu> 

나는 mainActivity에서의 onCreateOptionsMenu 기능을 통해 액션 바 항목을 추가하고 그것을 채우는되어있어 몇 가지 튜토리얼을 읽어 보시기 바랍니다. 그러나 그것이 내 옵션 메뉴가 채워지는 곳이지 내 액션 바가 아닙니다.

+0

Logcat 보고서를 통해 도움을받을 수 있습니까? **감사**. – AndroidDev

+0

커스텀'ActionBar' 구현체를 원합니까? 보통의'ActionBar'에서 여분의 아이템을 원합니까? – Darwind

+0

일반 작업 표시 줄에 여분의 항목 만 있습니다. 저기에 '추가'버튼이 있습니다. OnCreateOptions에 넣으려고 읽을 때 혼란 스러웠습니다. 왜냐하면 그것이 내가 채워져 있고 옵션 메뉴 (하드웨어 버튼)를 만들었 기 때문입니다. 작업 표시 줄을 사용하도록 변경 한 경우 옵션 메뉴가 지워지지 않습니까? – CREW

답변

8

activity는 onCreateOptionsMenu() 메소드에서 ActionBar를 채 웁니다. 대신 setcustomview()를 사용

, 바로 액션 바의 행동을 선택하면이

@Override 
public boolean onCreateOptionsMenu(Menu menu){ 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.mainmenu, menu); 

    return true; 
} 

처럼의 onCreateOptionsMenu 오버라이드 (override)는 onOptionsItemSelected() 메서드가 호출됩니다. 선택한 동작을 매개 변수로받습니다. 이 정보를 토대로 코드 예를 들면 다음과 같이 결정할 수 있습니다.

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.menuitem1: 
      Toast.makeText(this,"Menu Item 1 selected",Toast.LENGTH_SHORT).show(); 
      break; 
     case R.id.menuitem2: 
      Toast.makeText(this,"Menu item 2 selected",Toast.LENGTH_SHORT).show(); 
      break; 
     default: 
      break; 
    } 

    return true; 
} 
+0

내 주 활동에 OnCreateOptionsMenu가 이미 있습니다. 하드웨어 설정 버튼을 누르면 팝업되는 옵션 메뉴에 사용됩니다. R.menu.mainmenu를 R.menu.actionbar로 변경하겠습니까? 내 설정 메뉴를 유지하고 작업 표시 줄을 채우는 방법이 있습니까? – CREW

+0

oncreateoptionsmenu()의 C#에서 R.menu.mainmenu로 변경하십시오. – AndroidDev

관련 문제