2014-04-16 9 views
0

ActionBar에있는 뒤로 버튼으로 이전 활동으로 돌아가려고하고 있지만 제대로 작동하지 않습니다. 나는탐색 안드로이드의 이전 활동으로 돌아 가기

onCreate() 

방법에

getActionBar().setDisplayHomeAsUpEnabled(true); 

을 가지고

onOptionsItemSelected 

에 나는 그것을 잘 작동 에뮬레이터에

if(item.getItemId()==android.R.id.home){ 
       onBackPressed(); 
      } 

있습니다. 모바일에 응용 프로그램을 설치하면 뒤로 버튼이 사라집니다. 그 문제를 해결하는 방법에 대한 아이디어가 있으십니까? 내 매니페스트의 부 :

<uses-sdk 
     android:minSdkVersion="12" 
     android:targetSdkVersion="18" /> 

<activity 
      android:name="datepicker.DatePicker" 
      android:label="@string/title_activity_date_picker" > 
      <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.myfirstapp.MainActivity" /> 
     </activity> 
     <activity 
      android:name="gridviewcontext.TableItem" 
      android:label="@string/title_activity_table_item" > 
      <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.myfirstapp.MainActivity" /> 
     </activity> 
+0

모바일 및 AVD의 API 레벨은 무엇입니까? 매니페스트 파일도 게시하십시오. –

+0

ActionBarCompat를 사용하는 경우 getSupportActionBar()를 사용하는 것이 좋습니다. setDisplayHomeAsUpEnabled (true); – betorcs

+0

나는 질문을 편집했다. 어떤 API 레벨이 mymobile에 있는지 어떻게 알 수 있습니까? 내가 생각하는 젤리 빈 있어요 (4.0 안드로이드) –

답변

0

당신은 당신이 당신의 매니페스트에서 뒤로 버튼이 활성화 활동에 부모 활동 이름을 추가해야합니다 :

android:parentActivityName="your_parent_activity" 
+0

예.하지만 활동의 부모가 항상 같지는 않습니다. 나는 한 가지 활동에서 다른 방식으로 다른 활동으로 이동할 수 있습니다. 그래서 나는 부모를 가질 수 없다. –

+0

@ c_user89 이것을 알아 냈는가? –

-1

사용 마무리() 대신 onBackPressed의()

+0

finish()와 onBackPressed() 사이의 차이점을 말할 수 있습니까? – GvSharma

+0

OP의 질문에 대답합니까? "모바일에 응용 프로그램을 설치하면 뒤로 버튼이 사라졌습니다"? –

+0

Activity에서 onBackPressed() 메소드를 재정의하지 않은 경우 Activity에 대해 finish()가 호출됩니다. finish()를 명시 적으로 호출 할 필요가 없습니다. 그래서 Activity Stack의 맨 위에있는 Activity가 표시됩니다. 그리고 빈 스택이 있으면 응용 프로그램에서 꽤됩니다. Override onBackPressed() 메서드가있는 경우 명시 적으로 finish()를 호출하여 작업을 삭제해야합니다. –

0

API 수준 16 이하의 모바일에서 앱을 테스트한다고 가정합니다.

앱이 Android 4.0 및 l을 지원하는 경우 응용 프로그램과 함께 지원 라이브러리를 포함하고 <activity> 안에 요소를 추가하십시오. 다음과 같이 다음, android:parentActivityName attribute.Do 일치, android.support.PARENT_ACTIVITY에 대한 매니페스트 파일에

<activity 
     android:name="myomega.datepicker.DatePicker" 
     android:label="@string/title_activity_display_message" 
     android:parentActivityName="com.example.myfirstapp.MainActivity" > 
     <!-- Parent activity meta-data to support 4.0 and lower --> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.myfirstapp.MainActivity" /> 
    </activity> 

를 값으로 부모 활동을 지정, 당신은 android:parentActivityName="com.example.myfirstapp.MainActivity"이 줄을 누락되었습니다.

레프 런스 http://developer.android.com/training/implementing-navigation/ancestral.html

+0

앱이 Android 4.0 이하를 지원하는 경우 앱과 함께 지원 라이브러리를 포함하십시오. 올바른지 – GvSharma

+0

활동의 부모가 항상 그런 것은 아닙니다. 같은. 나는 하나의 활동에서 다른 활동으로 이동할 수 있습니다. 그래서 나는 부모를 가질 수 없다. 아니면 내가 할 수 있을까? –

+0

@ c_user89 : 내가 언급 한 참조 링크의 문서 마지막 부분을 참조하십시오. 도움이 될 수 있습니다. –

관련 문제