2012-01-21 3 views
26

현재 Android 앱에서 작업하고 있습니다. 작업 표시 줄의 앱 아이콘을 사용하여 '집'활동을 탐색하고 싶습니다. 내가 수행해야 할 일은 onOptionsItemSelected을 추가하고 ID는 android.R.id.home입니다. this 페이지를 읽었습니다.앱 아이콘을 클릭해도 onOptionsItemSelected()가 발생하지 않습니다.

이것은 앱 아이콘을 눌러 HomeActivity으로 돌아가고 자하는 내 활동에서 구현 한 코드입니다.

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
    case android.R.id.home: 
     Intent intent = new Intent(this, HomeActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

그러나 아무 일도 발생하지 않습니다. 디버깅 할 때 아이콘을 클릭해도 onOptionsItemSelected()이 발생하지 않음을 알 수 있습니다. 어딘가에서 아이콘을 가지고 뭔가해야합니까? 현재로서는,이 패키지는 이후 API 레벨 14를 표적으로 그냥 이것을 AndroidManifest.xml

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
+0

을 할 수 있기 때문에 당신이 당신의 secondActivity에 그 코드를 삽입해야

이 거짓 .. .. 나는 오직 응답 시도 옵션 메뉴가있는 활동의 조치 표시 줄 아이콘으로 이동하십시오. 일시적으로 옵션 메뉴를 추가하고 표시되는 동작이 변경되는지 확인하십시오. – CommonsWare

+0

[ 'FLAG_ACTIVITY_SINGLE_TOP' 플래그를 사용하여 작업 다시 시작을 방지하십시오.] (http://stackoverflow.com/a/18658364/356895). – JJD

+2

내 문제는'onOptionsItemSelected'에 있었고'android.R.id.home' 대신'R.id.home'을 사용하여 제 견과를 몰고 왔습니다! – mbwasi

답변

40

에, 모든 기본, 당신이 당신의에서 onCreate에서

setHomeButtonEnabled()를 호출하여 홈 버튼을 활성화해야, 다음을 추가합니다 : 당신이 안드로이드 새로운 지원 - 액션 바 (AppCompat)를 사용하는 경우

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
    getActionBar().setHomeButtonEnabled(true); 
} 
+4

ActionBarSherlock을 사용하는 사용자에게도이 기능을 추가하려고합니다. getSupportActionBar(). setHomeButtonEnabled (true); ' – euniceadu

4

당신은 두 통화를 할 필요가있다.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
    getActionBar().setHomeButtonEnabled(true); 
} 
getSupportActionBar().setHomeButtonEnabled(true); 
+2

getActionBar()는 AppCompat를 사용하여 null을 반환합니다. – bk138

0

우리는 같은 문제가 있는지 알지 못합니다.

하지만, 내가 그 문제에 있었고 지금은 해결 ..

당신이 HomeActivity에

case android.R.id.home: 
    Intent intent = new Intent(this, HomeActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    return true; 

을 추가하는 방법은 무엇입니까? secondActivity에 홈 버튼이 아닌 HomeActivity

case android.R.id.home: 
    NavUtils.navigateUpFromSameTask(this); 
    true; 

희망이 당신에게