清除主要活动中的先前回复

时间:2016-08-24 02:28:00

标签: android android-layout

我在主要活动中有一个简单的表格。在提交表单时,活动2开始。当我回到主要活动(点击后退按钮)时,我想清除所有回复。

4 个答案:

答案 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();

    }
}