我在主要活动中有一个简单的表格。在提交表单时,活动2开始。当我回到主要活动(点击后退按钮)时,我想清除所有回复。
答案 0 :(得分:0)
您可以覆盖主活动中的onResume()并清除相应的EditTexts
@Override
public void onResume() {
editText.setText("");
}
或
您可以像活动
一样覆盖活动2中的onBackPressed()@Override
public void onBackPressed() {
Intent intent = new Intent(Activity2.this, MainActivity.class);
startActivity(intent);
}
答案 1 :(得分:0)
当您为任何窗口小部件分配id
,并且活动或片段停止时,则会为任何窗口小部件调用onSaveState
以保存实际值并在您返回该活动时显示它
因此,要从其他活动回来时清理EditText,您必须手动执行,我建议您根据活动生命周期在onRestart
函数中执行此操作
答案 2 :(得分:0)
我不知道一个优雅的解决方案,但它应该有效:
public class MainActivity extends AppCompatActivity {
private boolean secondActivityLaunched;
@Override
protected void onCreate(Bundle savedInstanceState) {
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
secondActivityLaunched = true;
startActivity(new Intent(MainActivity.this, SecondActivity.class));
}
});
}
@Override
protected void onStart() {
super.onStart();
if (secondActivityLaunched) {
secondActivityLaunched = false;
clearForm();
}
}
}
答案 3 :(得分:0)
第一个活动:MainActivity.java
package com.test.activitytest;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText name=(EditText) findViewById(R.id.name);
EditText email=(EditText) findViewById(R.id.email);
EditText phone=(EditText) findViewById(R.id.phone);
Button submit = (Button)findViewById(R.id.button);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent it=new Intent(MainActivity.this,Activity2.class);
it.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(it);
finish();
}
});
}
}
第二个活动:Activity2.java
package com.test.activitytest;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class Activity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
}
@Override
public void onBackPressed() {
super.onBackPressed();
Intent it=new Intent(Activity2.this,MainActivity.class);
it.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(it);
finish();
}
}