Я работаю над приложением, в котором мне нужно перейти к определенной деятельности, основанной на некоторых действиях.Вот изображение
![enter image description here](https://i.stack.imgur.com/mKrkF.png)
Здесь мое первое действие - Чтение.На основании некоторых действий пользователь будет принят к NewProjectReadingActivity.Там у пользователя будет два варианта.
Вариант первыйВариант второй
В зависимости от параметров, выбранных пользователем, он / она будет перенаправлен в ReadingInputActivity.После получения входных данных от ReadInputActivity пользователь будет перенаправлен на ReadConfirmationActivity.Там будет три варианта
Вариант первыйВариант второйВариант третий
Если пользователь выберет первый вариант, он / она будет переведен в режим чтения данных, что очень просто.Я очищу стек и снова запустлю ReadActivity, и если он / она нажмет кнопку «Назад», приложение будет свернуто, что вполне нормально.Но если пользователь выберет второй вариант, он / она будет переведен в NewProjectReadingActivity. Если я очищу стек операций и снова запустлю NewProjectReadingActivity, то он запустит NewProjectReadingActivity, но проблема в том, что если пользователь нажмет кнопку «Назад», это минимизирует мойприложение, поскольку оно является единственным Activity, присутствующим в стеке действий.
Что я хочу, так это то, что если пользователь выберет второй вариант для ReadConfirmationActivity, то пользователь будет перенаправлен на NewReadingActivity, что означает, что я хочу удалить ReadingConfirmationActivity (который легко вызывается методом finish ()) и действиеначалось до этого действия i, e ReadingInputActivity.
Каждое упомянутое действие содержит фрагмент.Я предоставляю код активности ниже.
ReadingActivity
public class ReadingActivity extends BaseAppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if( savedInstanceState == null ) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, ReadingFragment.getInstance(), ReadingFragment.TAG).commit();
}
setDisplayHomeAsUpEnabled(true);
setActionBarText(getString(R.string.new_project_reading));
}
@Override
protected void setupContentView() {
setContentView(R.layout.activity_reading);
}
public static Intent newIntent(Context context) {
Intent intent = new Intent(context, ReadingActivity.class);
return intent;
}
}
NewProjectReadingActivity
public class NewProjectReadingActivity extends BaseAppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if( savedInstanceState == null ) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, NewProjectReadingFragment.getInstance(), NewProjectReadingFragment.TAG).commit();
}
setDisplayHomeAsUpEnabled(true);
setActionBarText(getString(R.string.new_project_reading));
}
@Override
protected void setupContentView() {
setContentView(R.layout.activity_new_project_reading);
}
public static Intent newIntent(Context context) {
Intent intent = new Intent(context, NewProjectReadingActivity.class);
return intent;
}
}
ReadingInputActivity
public class ReadingInputActivity extends BaseAppCompatActivity {
private static final String EXTRA_VALUE_TYPE = "value_type";
private int valueType = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
valueType = getIntent().getIntExtra(EXTRA_VALUE_TYPE, 0);
if( savedInstanceState == null ) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, ReadingInputFragment.getInstance(valueType), ReadingInputFragment.TAG).commit();
}
setDisplayHomeAsUpEnabled(true);
setActionBarText(getString(R.string.reading_input));
}
@Override
protected void setupContentView() {
setContentView(R.layout.activity_reading_input);
}
public static Intent newIntent(Context context, int valueType) {
Intent intent = new Intent(context, ReadingInputActivity.class);
intent.putExtra(EXTRA_VALUE_TYPE, valueType);
return intent;
}
}
ReadingConfirmationActivity
public class ReadingConfirmationActivity extends BaseAppCompatActivity {
private static final String EXTRA_VALUE_TYPE = "value_type";
private static final String EXTRA_READING_VALUE = "reading_value";
private int valueType = 0;
private double readingValue = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
valueType = getIntent().getIntExtra(EXTRA_VALUE_TYPE, 0);
readingValue = getIntent().getDoubleExtra(EXTRA_READING_VALUE, 0);
if( savedInstanceState == null ) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, ReadingConfirmationFragment.getInstance(valueType, readingValue), ReadingConfirmationFragment.TAG).commit();
}
setDisplayHomeAsUpEnabled(true);
setActionBarText(getString(R.string.reading_input));
}
@Override
protected void setupContentView() {
setContentView(R.layout.activity_reading_confirmation);
}
public static Intent newIntent(Context context, int valueType, double readingValue) {
Intent intent = new Intent(context, ReadingConfirmationActivity.class);
intent.putExtra(EXTRA_VALUE_TYPE, valueType);
intent.putExtra(EXTRA_READING_VALUE, readingValue);
return intent;
}
}