除非修改,否则保持编辑文本中的文本存在

Keeping Text in Edit Text Present unless Modified

我尝试在 Whosebug 和 android 开发者网站上搜索,但我找不到任何 method/command 关于如何在关闭时保留用户在“编辑文本”框中输入的文本activity.

我想要做的是我有一个 activity 它在 editText 框中接受用户的输入,当用户按下后退按钮转到不同的 acitviy 时,然后 ( s)他来了 (s)他发现最后输入的文本而不是空白的 editText 对话框。

如有问题请见谅。

您需要将其保存在持久存储中。使用 SharedPreferences 可能是更好的解决方案。

您必须使用 sharedPreferences 来执行此操作: 像这样保存您的偏好(例如,当 activity 暂停时):

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
prefs.edit().putString("myvalue", myEditText.getText().toString()).apply();

并恢复 activity 的 onCreate 方法的值:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
myEditText.setText(prefs.getString("myvalue", ""));

你activity最后看起来像这样:

public class MainActivity extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        startService(new Intent(this, ShakeService.class));

        EditText myEditText = (EditText)findViewById(R.id.myedittext);
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        myEditText.setText(prefs.getString("myvalue", ""));
    }

    @Override
    protected void onPause()
    {
        super.onPause();

        EditText myEditText = (EditText)findViewById(R.id.myedittext);
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        prefs.edit().putString("myvalue", myEditText.getText().toString()).apply();
    }
}

如果你想这样做,那么你需要在调用 onbackpress() 时将所有 edittext 值存储在 preferences 中。

当我们再次进入 activity 时,然后在 onCreate()onResume() 中设置编辑文本的文本。