Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 保存Edittext并使其保持在Edittext上_Java_Android - Fatal编程技术网

Java 保存Edittext并使其保持在Edittext上

Java 保存Edittext并使其保持在Edittext上,java,android,Java,Android,我有一个应用程序,在其中我在editText中获取用户的名称,并将其存储到firebase,但当我退出活动并返回时,editText字段不再显示用户的名称。我希望他们的名字留在编辑文本字段中。 除了用户放入的ImageView中的图像外,我还将如何执行相同的操作。请帮忙。想法: 您可以使用共享首选项。当用户启动其应用程序时,第一个任务将是从共享首选项加载其用户名和密码 通过这样做,您还可以管理会话管理器以获得更好的用户体验 例如:每次成功验证后,您都可以存储每次更新屏幕所需的用户基本信息 好处:

我有一个应用程序,在其中我在editText中获取用户的名称,并将其存储到firebase,但当我退出活动并返回时,editText字段不再显示用户的名称。我希望他们的名字留在编辑文本字段中。
除了用户放入的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,我会怎么做