마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

onOptionsItemSelected에 switch-case로 메뉴 클릭 시 화면이 바뀌는 구현을 하고 싶어요

0 추천
저는 버튼을 눌렀을 때 첫번째 화면에서 두번째 화면으로 넘어가는 코드는 배웠습니다

그런데 onOptionsItemSelected 라는 것을 이용해서 옵션 메뉴를 클릭했을 때 어떤 행동을 할 수 있다고 들었는데

옵션 메뉴를 클릭했을 때 화면이 넘어가는 방법을 잘 모르겠습니다

대충 이런 코드인거 같은데 구체적으로 알려주세요

--

//온옵션스아이템실렉티드

public boolean onOptionsItemSelected(MenuItem item) {
  
  switch (item.getItemId()){
  case 1:
   

 //화면 전환 코드

startActivity(new Intent(첫번째 화면 이름.this , 두번째 화면 이름.class));
   return true;

...

----

핵심 질문 : 온옵션스아이템실렉티드를 이용하여 두번쨰 화면으로 넘어가는 코드를 알려주세요
익명사용자 님이 2014년 2월 11일 질문

1개의 답변

0 추천
흠.. 이미 방법은 다 아시는데..

public boolean onOptionsItemSelected(MenuItem item) 이벤트 처리를 위한 케이스가 고민이신가바욤

switch (item.getItemId()){
  case 1:

여기서 아이템의 아이디를 가지고 처리를 할 수도 있지만

item.getTitle() 즉 문자열을 가지고 와서 처리해줄수도 있어요

if(item.getTitle == "옵션메뉴이름")

{

   // 화면전환 코드

}

끗? 화이팅이요~

 

아, 그리고 아이디값 받아서 하고싶은데 저 아이디값이 무슨 값이 들어오는지 모르겠다 ㅠㅠ 하시면

Log.i("메뉴아이디값", ""+item.getItemId()); 이런식으로 로그 찍어보시면 되용~
초보개발자ㅠ (33,870 포인트) 님이 2014년 2월 12일 답변
package com.example.practice;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

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

    static final int USER_INFO_DIALOG = 0;

     

     public boolean onCreateOptionsMenu(Menu menu) {
      menu.add(Menu.NONE, USER_INFO_DIALOG , Menu.NONE, "설정");
      return super.onCreateOptionsMenu(menu);
     }

     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
      switch(item.getItemId()){
      case USER_INFO_DIALOG:
       Toast.makeText(this, "설정클릭", Toast.LENGTH_SHORT).show();
       
       Intent i = new Intent(MainActivity.this, bb.class);

       startActivity(i);

       break;
      
      }
      return super.onOptionsItemSelected(item);
     }



}
이 코드를 발견했는데 실행해보니 오류나더라구요 매니페스트에 등록하긴 했지만.. 왜 안될까요?
으잉.. 잘되는데요?

질문하실 때....
"실행했다. 오류가 났다." 라고 하시면 답변하기가 참 어렵습니다 ^^;
1 어떤 오류가 났는지,
2 시나리오는 어땠는지,
3 해본일은 무엇이 있는지
정도는 적어주셔야 ㅜ ㅜ 3번째 것은 하셧네요.

매니페스트에 등록!  은 해보셨는데 안된다면..
혹시 액티비티 추가하시는 방법을 잘못알고 계시지않은가? 싶네요

아, 그리고 1번 2번 상황도 알려주시면 더 확실하게 답변 드릴 수 있겠네요
...