2012-09-21 2 views
2

저는 Android에 상당히 익숙합니다. 내 문제가 근본적인 것 같아서 미안 해요. 지난 밤에 그것을 보면서 나는 해결책을 찾지 못했다. (나는 내가 달성하려고 노력하는 것에 근본적인 결함이있을 수 있다고 생각하게 만든다.)onOptionsItemSelected에 변수 전달하기

기본적으로 나는 onOptionsItemSelected 내부에서 메소드를 호출하려고합니다.

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
// Handle item selection 
switch (item.getItemId()) { 
    case R.id.new_game: 
     newGame(); 
     return true; 
    case R.id.help: 
     showHelp(); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
} 
} 

하지만, 내 응용 프로그램에서, 내가 입력을 요구하는 onOptionsItemSelected 호출 방법이 있습니다 안드로이드 개발자 문서 (http://developer.android.com/guide/topics/ui/menus.html) 그들은이 예제를 제공합니다. 나는이 작업을 수행 할 때

@Override 
public boolean onOptionsItemSelected(MenuItem item, int myint) { 
// Handle item selection 
switch (item.getItemId()) { 
    case R.id.new_game: 
     newGame(myint); 
     return true; 
    case R.id.help: 
     showHelp(); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
} 
} 

가, 이클립스가 함께 제공 : 나는 안드로이드 개발자 웹 사이트에서 사용하고 예제의 맥락에서 이것은 newGame 방법으로 정수 "민트"를 통과하고 싶은 나에게 동일시 것 행 "public boolean onOptionsItemSelected (MenuItem item) {" "@Override"명령을 제거해야한다는 오류입니다.

사람들이 onOptionsItemSelected (또는 onConfigurationChanged와 같은 메서드)를 통해 변수를 전달하는 예제를 인터넷에서 찾을 수 없었습니다. 따라서이 방법의 근본적인 오해가있을 수 있습니다. 불행히도, 나는이 문제를 올바르게 다루기 시작 해야할지 잘 모르겠습니다. 현재 "public static"변수를 사용하고 있기 때문에 내 메서드 (이 예제에서는 newGame)를 사용하여 액세스 할 수 있지만 이러한 변수 유형을 사용하는 것이 일반적으로 싫은 것처럼 보입니다.

누군가가 나를 도울 수 있거나 심지어 내가 검색/읽을 필요가있는 방향으로 나를 지적하면 매우 감사 할 것입니다.

감사

스티븐

+0

이 코드는 메뉴에 대한 코드입니까? 너 게임하니? –

+0

이것은 Android 개발자 웹 사이트에서 취한 예입니다. 내 실제 응용 프로그램은 vocab 테스트 응용 프로그램입니다. 내가 오류가 없다는 것을 알고있는 구글의 혼란없는 코드를 사용하는 것이 더 쉬워 보였다! – Stephen

답변

1
당신은 당신의 클래스의 개인 비 정적 변수를 가질 수있다, 당신은 메뉴 항목을 선택하면, 당신은 단지 읽을 수

:

case R.id.new_game: 
    newGame(this.myint); 
    return true; 

을 그리고에서가 클래스의 상단 :

당신은 당신이 버지니아가 있는지 확인해야합니다 사용자가 메뉴 항목을 클릭하기 전에 그것에 할당 된 lue!

+0

정말 훌륭합니다. 고마워요. 기대했던 것보다 훨씬 쉽게 구현할 수 있습니다! – Stephen