2016-09-07 3 views
1

내 프로젝트에 하나의 활동이 있습니다. 나는 3 개의 품목을 가진 선택권 메뉴를 창조했다. 나는 왜 그런지 모르지만 그것은 나를 위해 작동하지 않습니다. 내가 항목을 선택 때마다 나는 항목 ID를 얻을 0Android 옵션 메뉴가 작동하지 않습니까?

고해상도/메뉴/m1.xml :

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/ITEM1" 
     android:title="one"> 
    </item> 
    <item android:id="@+id/ITEM2" 
     android:title="two"> 
    </item> 
    <item android:id="@+id/ITEM3" 
     android:title="three"> 
    </item> 
</menu> 

활동 :

public class MainActivity extends Activity { 

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

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     menu.add("1"); 
     menu.add("2"); 
     menu.add("3"); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch(item.getItemId()){ 
      case R.id.ITEM01: Toast.makeText(this, "1",Toast.LENGTH_SHORT); 
       break; 
      case R.id.ITEM02: Toast.makeText(this, "2",Toast.LENGTH_SHORT); 
       break; 
      case R.id.ITEM03: Toast.makeText(this, "3",Toast.LENGTH_SHORT); 
       break; 
      default: Toast.makeText(this, "-----",Toast.LENGTH_SHORT); 
     } 
     Log.v("DEMO", "Item ID: "+item.getItemId()); 
     return super.onOptionsItemSelected(item); 
    } 
} 

나는 항목을 선택하면 나는 항상 로그에서 0을 얻는다. 왜?

답변

0

코드

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

아래이 코드에 의해 코드를 바꾸기로의 onCreateOptionsMenu() 메소드를 교체

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

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch(item.getItemId()){ 
      case R.id.ITEM01: Toast.makeText(this, "1",Toast.LENGTH_SHORT); 
       break; 
      case R.id.ITEM02: Toast.makeText(this, "2",Toast.LENGTH_SHORT); 
       break; 
      case R.id.ITEM03: Toast.makeText(this, "3",Toast.LENGTH_SHORT); 
       break; 
      default: Toast.makeText(this, "-----",Toast.LENGTH_SHORT); 
     } 
     Log.v("DEMO", "Item ID: "+item.getItemId()); 
     return super.onOptionsItemSelected(item); 
    } 
0

당신은보기

MenuInflater inflater = getMenuInflater(); 
inflater.inflate(R.menu.menu, menu); 

두 메뉴를 팽창 할 필요가 이

+0

@ momo : 대답 받았어? – DKV