Java 保存Edittext并使其保持在Edittext上
我有一个应用程序,在其中我在editText中获取用户的名称,并将其存储到firebase,但当我退出活动并返回时,editText字段不再显示用户的名称。我希望他们的名字留在编辑文本字段中。Java 保存Edittext并使其保持在Edittext上,java,android,Java,Android,我有一个应用程序,在其中我在editText中获取用户的名称,并将其存储到firebase,但当我退出活动并返回时,editText字段不再显示用户的名称。我希望他们的名字留在编辑文本字段中。 除了用户放入的ImageView中的图像外,我还将如何执行相同的操作。请帮忙。想法: 您可以使用共享首选项。当用户启动其应用程序时,第一个任务将是从共享首选项加载其用户名和密码 通过这样做,您还可以管理会话管理器以获得更好的用户体验 例如:每次成功验证后,您都可以存储每次更新屏幕所需的用户基本信息 好处:
除了用户放入的ImageView中的图像外,我还将如何执行相同的操作。请帮忙。想法: 您可以使用共享首选项。当用户启动其应用程序时,第一个任务将是从共享首选项加载其用户名和密码 通过这样做,您还可以管理会话管理器以获得更好的用户体验 例如:每次成功验证后,您都可以存储每次更新屏幕所需的用户基本信息 好处: 如果用户在未启用internet的情况下启动应用程序,这将帮助您在屏幕上显示旧数据。您可以检查internet,如果禁用,则只需显示首选项中的旧数据。IDEA: 您可以使用共享首选项。当用户启动其应用程序时,第一个任务将是从共享首选项加载其用户名和密码 通过这样做,您还可以管理会话管理器以获得更好的用户体验 例如:每次成功验证后,您都可以存储每次更新屏幕所需的用户基本信息 好处:
如果用户在未启用internet的情况下启动应用程序,这将帮助您在屏幕上显示旧数据。您可以检查internet,如果禁用,则只需显示首选项中的旧数据。您可以执行类似操作
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
text.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count)
{
prefs.edit().putString("autoSave", s.toString()).commit();
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after)
{
}
@Override
public void afterTextChanged(Editable s)
{
//At here you can call some method to get the text from shared preferences and display it on EDitText
}
或者您可以通过onTextChanged()方法将数据保存到数据库中
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
text.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count)
{
prefs.edit().putString("autoSave", s.toString()).commit();
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after)
{
}
@Override
public void afterTextChanged(Editable s)
{
//At here you can call some method to get the text from shared preferences and display it on EDitText
}
或者您可以在onTextChanged()方法中将用户名保存到DB中下面是一个小活动示例,它在活动停止时将用户名保存到SharedReferences中,并在活动(重新)启动时将值恢复到EditText中:
下面是一个小活动示例,它在活动停止时将用户名保存到SharedReferences中,并在活动(重新)启动时将值恢复到EditText中:
设置单击侦听器以编辑文本。 在内部单击启用编辑文本并使用setValue写入firebase 单击设置为父布局或检查编辑文本的焦点是否更改。使用附加值事件侦听器从firebase内部读取 在Oncreate中,禁用编辑文本并使用add-value事件侦听器从firebase读取 这将无缝地自动保存和检索编辑文本数据 在OnCreate中创建活动的方法 //初始化编辑文本 mEditText=(EditText)findViewById(R.id.EditText) //禁用mEditText
mEditText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mEditText.setEnabled(true);
editTextData = mEditText.getText().toString();
mFirebaseRef.setValue(editTextData);
}
});
mEditText.setEnabled(错误)
//从firebase读取,如果mTextEdit未处于焦点,则将文本设置为mEditText
如果(!mEditText.isFocused()){
mFirebaseRef.addValueEventListener(新的ValueEventListener(){
}
//将onclick listener设置为mEditText
mEditText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mEditText.setEnabled(true);
editTextData = mEditText.getText().toString();
mFirebaseRef.setValue(editTextData);
}
});
这对我来说很有用,UI看起来很简单,没有任何额外的按钮在编辑和保存之间切换
希望我正确理解了您的要求。谢谢设置单击“侦听器”编辑文本。 在内部单击启用编辑文本并使用setValue写入firebase 单击设置为父布局或检查编辑文本的焦点是否已更改。内部使用“添加值”事件侦听器从firebase读取 在Oncreate中,禁用编辑文本并使用add-value事件侦听器从firebase读取 这将无缝地自动保存和检索编辑文本数据 在OnCreate中创建活动的方法 //初始化编辑文本 mEditText=(EditText)findViewById(R.id.EditText) //禁用mEditText
mEditText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mEditText.setEnabled(true);
editTextData = mEditText.getText().toString();
mFirebaseRef.setValue(editTextData);
}
});
mEditText.setEnabled(错误)
//从firebase读取,如果mTextEdit未处于焦点,则将文本设置为mEditText
如果(!mEditText.isFocused()){
mFirebaseRef.addValueEventListener(新的ValueEventListener(){
}
//将onclick listener设置为mEditText
mEditText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mEditText.setEnabled(true);
editTextData = mEditText.getText().toString();
mFirebaseRef.setValue(editTextData);
}
});
这对我来说很有用,UI看起来很简单,没有任何额外的按钮在编辑和保存之间切换
希望我正确理解了您的要求。谢谢这是一半答案,最好向op展示如何在活动的重新启动时从SharedReferences加载字符串这是一半答案,最好向op展示如何在活动的重新启动时从SharedReferences加载字符串谢谢这是答案!我怎么办如果没有ImageView@Chris623,我会怎么做?如果没有ImageView@Chris623,我会怎么做