除非修改,否则保持编辑文本中的文本存在
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() 中设置编辑文本的文本。
我尝试在 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() 中设置编辑文本的文本。