如何在Android中调用Activity后在EditText中保存文本?

时间:2014-05-06 14:57:41

标签: android android-activity android-edittext

我有2个活动A和B,在活动A中我有1个EditText和1个Button。 Button用于调用Activity B.我只是想知道,当用户第一次在EditText中输入一些文本时,用户调用Activity B,之后返回Activity A(A> B>然后返回A)可以我还有用户输入需要任何帮助谢谢:D

这里我的活动A代码(CreateData是活动A)

public class CreateData extends Activity implements OnClickListener{
    private Button buttonAdd;
    private EditText edNama_sma;
    private String nama;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.create_data);
        edNama_sma     = (EditText) findViewById(R.id.nama_sma);
        buttonAdd      = (Button) findViewById(R.id.buttom_add_koordinat);
        buttonAdd.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) 
    {
        nama  = edNama_sma.getText().toString().toUpperCase().trim();
        // TODO Auto-generated method stub
        switch(v.getId())
        {
            case R.id.buttom_add_koordinat:
            Intent c = new Intent(this, ActivityB.class);
            startActivity(c);
            finish();
        }
    }
@Override
public void onResume() {
    super.onResume();

        edNama_sma.setText(edNama_sma.getText());

    }
}

2 个答案:

答案 0 :(得分:2)

启动其他活动时请勿调用完成。然后原始活动将保留在活动堆栈中,编辑文本中的数据仍将填充。 否则,您应该使用SharedPreferences存储离开活动时需要保留的任何临时数据。有时,如果设备旋转,它可以擦除输入视图的内容,在这种情况下,您需要使用SharedPreferences保存并重新加载它们。

http://developer.android.com/reference/android/content/SharedPreferences.html

答案 1 :(得分:0)

覆盖onResume()方法,在此方法中,将name的值设置为EditText名为edNama_sma的文本。

@Override
public void onResume() {
super.onResume();

    edNama_sma.setText(nama);

}

因此,整个活动类应该看起来像

public class CreateData extends Activity implements OnClickListener{
    private Button buttonAdd;
    private EditText edNama_sma;
    private String nama;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.create_data);
        edNama_sma     = (EditText) findViewById(R.id.nama_sma);
        buttonAdd      = (Button) findViewById(R.id.buttom_add_koordinat);
        buttonAdd.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) 
    {
        nama  = edNama_sma.getText().toString().toUpperCase().trim();
        // TODO Auto-generated method stub
        switch(v.getId())
        {
            case R.id.buttom_add_koordinat:
            Intent c = new Intent(this, ActivityB.class);
            startActivity(c);

        }
    }

    @Override
    public void onResume() {
        super.onResume();

        edNama_sma.setText(nama);

    }
}