У меня есть три таких действия:
+ LoginPage: отображать только один раз, когда приложение установлено
+ MainActivity: главный экран приложения
+ TextNoteActivity: вспомогательное действие вызывается startActivityForResult из MainActivity
Я не знаю, почему, когда я нажимаю кнопку «Домой» в TextNoteActivity. Приложение закроется. Ниже приведен мой код.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lilprogramming.bossnote">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name="activity.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar"
>
</activity>
<activity
android:name="activity.LoginPage"
android:label="@string/app_name"
android:noHistory="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="activity.TextNoteActivity"
android:parentActivityName="activity.MainActivity"
>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="activity.MainActivity" />
</activity>
<activity
android:name="activity.AddTagActivity"
android:label="@string/title_activity_add_tag"
android:theme="@style/AppTheme">
</activity>
</application>
In MainActivity :
Intent i = new Intent(this, TextNoteActivity.class);
startActivityForResult(i, REQUEST_ADDTEXTNOTE);
В TextNoteActivity:
toolbar = (Toolbar) findViewById(R.id.addTextNote_toolbar);
toolbar.setTitle("");
setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addTextNote();
Toast.makeText(TextNoteActivity.this, "Back then", Toast.LENGTH_SHORT).show();
finish();
}
});
Обновить
private void addTextNote() {
String title = etTitle.getText().toString();
String content = etContent.getText().toString();
if (!title.isEmpty() && !content.isEmpty()) {
TextNote textNote = new TextNote(title, 0, content);
database.addTextNote(textNote, null);
setResult(RESULT_OK);
}
else {
setResult(Activity.RESULT_CANCELED);
}
}