我有一个活动:Activity1,应该打开一次(第一次启动) Activity2,主屏幕。在第一次启动时在Activity1中做了一些事情之后,每次启动Activity2都应该打开。我有点想出了如何做到这一点,它工作得很好,但是当我按下手机上的“后退”按钮时,Activity1突然出现。那么我该如何解决呢?我应该清除堆栈还是什么?这是我的代码:活动 1:public class MainActivity extends AppCompatActivity { Button but1; EditText input1; TextView error1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.welcome_page); if(getName("username")!=null){ Intent intent = new Intent(MainActivity.this, WelcomePageLast.class); startActivity(intent); } ListenerOnButton(); } public void ListenerOnButton(){ but1 = (Button)findViewById(R.id.welcome_page_button); input1 = (EditText)findViewById(R.id.username_input); error1 = (TextView)findViewById(R.id.name_error); but1.setOnClickListener( new View.OnClickListener() { public void onClick(View view){ if (input1.getText().toString().length() < 2){ error1.setText("Слишком короткое имя!"); }else { error1.setText(""); Intent intent = new Intent(MainActivity.this, WelcomePageLast.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK |Intent.FLAG_ACTIVITY_CLEAR_TOP); setName("username", input1.getText().toString()); startActivity(intent); } } } ); } public void setName(String key, String value){ SharedPreferences preferences = getSharedPreferences("preferences", MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString(key, value); editor.apply(); }
1 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
它不会让你回到上次活动
Intent intent = new Intent(MainActivity.this, WelcomePageLast.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK |Intent.FLAG_ACTIVITY_CLEAR_TOP);
setName("username", input1.getText().toString());
startActivity(intent);
finish();
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)- 清除活动堆栈。如果您不想清除活动堆栈。请不要使用那个标志。
添加回答
举报
0/150
提交
取消