我有一个应用程序,我在editText中获取用户的名称并将其存储到firebase但是当我退出活动并返回到它时,editText字段不显示用户的名称了。我希望他们的名字留在editText字段中。 我也将如何做同样的事情,但是对于用户放入的ImageView中的图像。请帮助。
答案 0 :(得分:0)
<强> IDEA:强> 您可以使用共享首选项。当用户启动他的应用程序时,第一个任务将从共享首选项加载他的用户名和密码。
通过这样做,您还可以管理会话管理器以获得更好的用户体验。
例如:每次成功验证后,您都可以存储每次更新屏幕所需的用户基本信息。
<强>益处:强> 如果用户在未启用互联网的情况下启动您的应用,这将帮助您在屏幕上显示旧数据。您可以查看互联网,如果禁用,则只需显示偏好的旧数据。
答案 1 :(得分:0)
你可以做这样的事情
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中答案 2 :(得分:0)
这是一个小活动示例,在活动停止时将用户名保存到SharedPreferences中,并在(重新)启动活动时将值恢复为EditText:
public class Test extends Activity {
EditText edtUser;
SharedPreferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
preferences = PreferenceManager.getDefaultSharedPreferences(this);
edtUser = (EditText) findViewById(R.id.editTextUser);
edtUser.setText(preferences.getString("username", ""));
}
@Override
protected void onStop() {
super.onStop();
preferences.edit().putString("username", edtUser.getText().toString()).commit();
}
}
答案 3 :(得分:0)
设置单击侦听器以编辑文本。 在里面单击启用编辑文本并使用setValue写入firebase。
设置单击到父布局或检查是否已更改编辑文本。内部使用add value事件监听器从firebase读取。
在Oncreate中禁用编辑文本并使用添加值事件侦听器从firebase读取。
这将无缝地自动保存和检索编辑文本数据。
在OnCreate中创建活动方法
//初始化edittext
mEditText =(EditText)findViewById(R.id.edittext);
//禁用mEditText
mEditText.setEnabled(假);
//如果mTextEdit未处于焦点,则从firebase读取并将文本设置为mEditText
if(!mEditText.isFocused()){
mFirebaseRef.addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String editTextData = (String) dataSnapshot.getValue();
mEditText.setText(editTextData);
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
//将onclick侦听器设置为mEditText
mEditText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mEditText.setEnabled(true);
editTextData = mEditText.getText().toString();
mFirebaseRef.setValue(editTextData);
}
});
这适用于我,UI看起来很简单,没有任何额外的按钮可以在编辑和保存之间切换。
希望我能正确理解你的要求。感谢