2016-03-30 4 views
0

Когда я нажимаю кнопку «Назад» из третьей активности, она переходит в первую активность, но я не знаю, что не так, помогите пожалуйста. Заранее спасибоКнопка Android назад работает неправильно

Это мой файл манифеста:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/app_icon" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme" 
    tools:replace="@android:icon"> 
    <activity 
     android:name=".firstActivity" 
     android:label="@string/title_activity_main" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

    </activity> 
    <activity 
     android:noHistory="true" 
     android:name=".secondActivity" 
     android:label="Todo List" 
     android:parentActivityName=".firstActivy" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.akbari.test.Main" /> 
    </activity> 
    <activity 
     android:noHistory="true" 
     android:name=".thirdActivity" 
     android:label="@string/title_activity_client_list" 
     android:parentActivityName=".secondActivity" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.akbari.test.Main" /> 
    </activity> 
</application> 

Я использовал это в моей второй деятельности, и я думаю, что проблема с System.exit (0)

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     appSettings(); 
     return true; 
    } else if (id == R.id.action_refresh){ 
     init(); 
    } else if (id == R.id.action_exit){ 
     System.exit(0); 
    } 
    return super.onOptionsItemSelected(item); 
} 
+0

Может быть, вы заканчиваете вторую активность, когда третья одна начинает –

+0

вы должны закончить вторую деятельность и не закончили первый один –

+4

разместить свой код Java тоже для вызова второй и третьей деятельности –

ответ

0

Если вы используете верхняя версия, чем 4.0 (API-уровень 16), то, очевидно, причина может заключаться в том, что вы закончили свое Второе действие в качестве комментариев.

Если вы используете ниже 4.0, то это происходит из-за вашего meta-data, где android:value вторых и третьих объектов указывает на то же.

Посмотрите here, как предоставляется мета-данных, а также увидеть атрибут android:value, который так же к значению android:parentActivityName

android:value="yourPackage.yourParentActivity" 
0

Проверьте порядок деятельности в файле манифеста для примера, который приходит первым, когда приложение запускает

<activity 
 
      
 
      (e.g the home screen which has buttons on it when we launch the app it comes first so it is on the top) 
 
      android:name=".firstActivity" 
 

 

 
      android:label="@string/app_name" > 
 
      <intent-filter> 
 
       <action android:name="android.intent.action.MAIN" /> 
 

 
       <category android:name="android.intent.category.LAUNCHER" /> 
 
      </intent-filter> 
 
     </activity> 
 
     (e.g these are buttons which is in the home screen ) 
 
     <activity android:name=".Second Activity" 
 
      android:screenOrientation="portrait"></activity> 
 

 
     <activity android:name=".MainActivity" 
 
      android:screenOrientation="portrait"></activity>

+0

Также проверьте свой метод onPause, если вы использовали Intent a = новый Intent (CurrentActivity.this, NextActivity.class); если его удалить. –

0

проблема была с android:noHistory="true", я удалил, что теперь я т работ.

Смежные вопросы