2016-09-19 2 views
0

У меня есть приложение, в котором я сначала показываю экран настроек, где пользователь может сохранить некоторые детали, я хотел запустить Main Activity, когда пользователь нажимает кнопку «Вверх» на панели инструментов, но в настоящее время, когда кнопка «Вверх» нажатие на приложение просто закрывается.Кнопка Android ToolBar Up не запускает родительскую активность

Вот мой манифест

<activity 
     android:name="com.xyz.activity.MainActivity" 
     android:label="@string/title_activity_welcome" 
     android:launchMode="standard" 
     android:theme="@style/MyMaterialTheme" /> 
    <activity 
     android:name="com.xyz.activity.IntroActivity" 
     android:theme="@style/MyMaterialTheme"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.xyz.activity.SetLocationActivity" 
     android:parentActivityName="com.xyz.activity.MainActivity"> 
     <!-- Parent activity meta-data to support 4.0 and lower --> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.xyz.activity.MainActivity" /> 
    </activity> 

И

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     // Respond to the action bar's Up/Home button 
     case android.R.id.home: 
      NavUtils.navigateUpFromSameTask(this); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 

} 

Любая помощь

+0

ли MainActivity в стеке.? Я имел в виду, что вы начали эту деятельность? – Raghavendra

+1

Вы установили getSupportActionBar(). SetDisplayHomeAsUpEnabled (true); getSupportActionBar(). SetDefaultDisplayHomeAsUpEnabled (true); –

+0

Я думаю, вам следует предоставить дополнительную информацию о вашем onCreateOptionsMenu в SetLocationActivity и как достичь SetLocationActivity, из MainActivity или откуда-то? – MinWan

ответ

0

Это то, что я в конечном итоге делает (В случае, если кто-то считает его полезным)

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     // Respond to the action bar's Up/Home button 
     case android.R.id.home: 
      Intent intent = new Intent(this, MainActivity.class); 
      startActivity(intent); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 

} 
1

Когда вы укажете android:parentActivityName атрибут и <meta-data.../>, как показано ниже:

<activity 
     android:name=".activity.EditProfileActivity" 
     android:label="@string/title_activity_edit_profile" 
     android:parentActivityName=".activity.ProfileActivity" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.via.android.activity.ProfileActivity" /> 
    </activity> 

Вы просто должны установить getSupportActionBar().setDisplayHomeAsUpEnabled(true); в вашем onCreate()

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    ... 
} 

и остальные вещи обрабатывается Android Framework.

Удалить ниже из вашего кода:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     // Respond to the action bar's Up/Home button 
     case android.R.id.home: 
      NavUtils.navigateUpFromSameTask(this); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 

}