2014-10-17 4 views
0

내 주요 활동에 영향을 미치지 만 아무 소용이없는 메뉴를 얻으려고 내 머리카락을 당깁니다.Android 메뉴가 부풀려지지 않습니다.

Android Studio를 사용 중이며 디자인보기에 XML 메뉴 항목이 올바르게 정의되어 있음이 나타납니다.

그러나 휴대 전화 (Android 4.4.2 실행) 또는 에뮬레이터에서 코드를 실행하면 메뉴 항목이 표시되지 않습니다. 메뉴를 누르면 아무 일도 일어나지 않습니다.

어떤 계발이 가장 환영받을 것입니다.

메뉴 XML - my.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:id="@+id/item1" android:title="Option1"></item> 
<item android:id="@+id/item2" android:title="Option2"></item> 
<item android:id="@+id/item3" android:title="Option3"></item> 
<item android:id="@+id/item4" android:title="Option4"></item> 
<item android:id="@+id/item5" android:title="Option5"></item> 
<item android:id="@+id/item6" android:title="Option6"></item> 
</menu> 

활동 클래스 - myActivity.java

package com.example.mymenu; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.util.Log; 
import android.widget.Toast; 

public class MyActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.my, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.item1: 
      Toast.makeText(this, " " + 
        "Option1", Toast.LENGTH_SHORT).show(); 
      return true; 
     case R.id.item2: 
      Toast.makeText(this, "Option2", Toast.LENGTH_SHORT).show(); 
      return true; 
     case R.id.item3: 
      Toast.makeText(this, "Option3", Toast.LENGTH_SHORT).show(); 
      return true; 
     case R.id.item4: 
      Toast.makeText(this, "Option4", Toast.LENGTH_SHORT).show(); 
      return true; 
     case R.id.item5: 
      Toast.makeText(this, "Option5", Toast.LENGTH_SHORT).show(); 
      return true; 
     case R.id.item6: 
      Toast.makeText(this, "Option6", Toast.LENGTH_SHORT).show(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 
} 

레이아웃 파일

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    tools:context=".MyActivity"> 

    <TextView 
     android:text="@string/hello_world" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</RelativeLayout> 
+0

그것은 나에게 좋아 보인다는 ... 당신이 아직도 운을 제안하지 않기 때문에 – dreamcoder

+0

했나 .. 프로젝트를 청소합니다. – user4152230

답변

1

나는 문제가 내 작성해야합니다 생각합니다. 레이아웃 폴더의 XML. 메뉴 폴더에서 my.xml을 만듭니다.

+0

이렇게하면 문제를 해결하는 데 도움이됩니다. 허용 된 것으로 표시 할 수 있습니다. –

+0

안녕하세요, my.xml이 이미 메뉴 폴더 – user4152230

0

menu.xml이 메뉴 폴더에 있고 레이아웃과 같은 다른 res 폴더가 아닌 경우 교차 확인합니다. 액션 바에서 부풀려 보려고하십니까? 예, 다음 menu.xml에 다음 코드를 사용하려고하면 는

android:showAsAction="always"

은 참조 : http://developer.android.com/guide/topics/ui/menus.html

+0

에 있습니다. 안녕하세요. showAsAction = always를 추가하면 항상 작업 표시 줄의 첫 번째 항목이 표시되지만 나머지 항목을 표시하지 않는 클릭은 나열되지 않습니다. – user4152230

0
Hi try this if you want to display it in Actionbar. 

    <menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 
     <item 
     android:id="@+id/action_settings" 
     android:icon="@drawable/action_overflow" 
      app:showAsAction="always"/> 
     <menu> 
     <item android:id="@+id/item1" android:title="Option1"></item> 
     <item android:id="@+id/item2" android:title="Option2"></item> 
     <item android:id="@+id/item3" android:title="Option3"></item> 
     <item android:id="@+id/item4" android:title="Option4"></item> 
     <item android:id="@+id/item5" android:title="Option5"></item> 
     <item android:id="@+id/item6" android:title="Option6"></item> 
    </menu> 
</menu> 
+0

좋습니다! 액션 바 문서의 지침을 따르는 것 외에 제안했습니다. 제안 된 수정에서 app :은 내 응용 프로그램 이름을 나타냅니다. 나는 첫 번째 아이템을 액션에 표시하려고했지만 나머지는 표시하지 않았다. – user4152230

+0

android : showAsAction = "never"를 추가하면 모든 항목이 작동합니다! 예 :

3

나는이 문제를 해결했다. 휴대 전화에는 메뉴 버튼이 있으며이 버튼을 누르면 메뉴 목록이 표시됩니다.

메뉴 버튼이없는 최신 휴대 전화를 사용해 보았는데 메뉴가 작업 표시 줄에 나타납니다.

감사

관련 문제