Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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 在android中按下导航后退按钮时保留edittext数据_Java_Android - Fatal编程技术网

Java 在android中按下导航后退按钮时保留edittext数据

Java 在android中按下导航后退按钮时保留edittext数据,java,android,Java,Android,在我的申请表中,有几个编辑文本,其中导航返回在丢失中按了我的数据,而焦点未显示。单击导航键返回按钮后,我无法保留该数据。如何解决此问题欢迎在StackOverflow上发布。通常情况下,发布您尝试过的内容是一种很好的做法,而不是为我解决这些问题,但是由于您是新来的,我会给您提供您需要的信息 当按下硬件后退按钮ON BACKPRESSED被触发时,您需要像这样覆盖它: @Override public void onBackPressed() { } Intent resultIntent =

在我的申请表中,有几个编辑文本,其中导航返回在丢失中按了我的数据,而焦点未显示。单击导航键返回按钮后,我无法保留该数据。如何解决此问题欢迎在StackOverflow上发布。通常情况下,发布您尝试过的内容是一种很好的做法,而不是为我解决这些问题,但是由于您是新来的,我会给您提供您需要的信息

当按下硬件后退按钮ON BACKPRESSED被触发时,您需要像这样覆盖它:

@Override
public void onBackPressed() {
}
Intent resultIntent = new Intent();
resultIntent.putExtra("edit_text_info", editText.getText().toString()); 
setResult(Activity.RESULT_OK, resultIntent);
finish();
然后,您需要如下设置“活动结果”:

@Override
public void onBackPressed() {
}
Intent resultIntent = new Intent();
resultIntent.putExtra("edit_text_info", editText.getText().toString()); 
setResult(Activity.RESULT_OK, resultIntent);
finish();
并开始此活动以获取结果:

startActivityForResult(Activity, ActivityRequestCode);
然后用edittext覆盖调用活动的活动的onresult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == ActivityRequestCode && resultCode == RESULT_OK && data != null) {
        editText = data.getStringExtra(ActivityRequestCode);
    }
}
从带有editText的活动接收状态后,将其保存在变量中,并在使用putStringExtra和。。。完成了


另一种解决方案是创建一个包含此edittext的片段,并将状态保留在活动中,但我的假设是,您是Android新手,因此这可能更容易(当然比定义单例或其他东西更好)。

我得到了答案。在自定义列表视图中使用的自定义
edittext
,当每个角色都改变时,我们必须保存

edittext.addTextChangedListener(new TextWatcher() {
       @Override
       public void beforeTextChanged(CharSequence s, int start, int count, int after) {
       }
       @Override
       public void onTextChanged(CharSequence s, int start, int before, int count) {            
       }
       @Override
       public void afterTextChanged(Editable s) {
                String value =s.toString();
                mInterface.valueChanged((int)getTag(),value);
       }
});
这是一种价值存储方法

@Override
public void valueChanged(int position, String value) {
    EachField eachfld =(EachField) eachFields.get(position);
    obtDetails.put(eachfld.key,value);
}

edittext文本是使用自定义列表视图附加的。如果要保留数据,请使用SharedReferences。您也可以尝试此操作,但要存储在SharedReferences中,我需要当前的edittext视图如何从自定义列表视图获取我使用自定义列表视图在此处生成活动问题是隐藏小键盘,它将在单击后,数据丢失。我需要保留该数据我不更改任何活动自定义列表视图?还是自定义列表视图适配器?你真的应该在你的问题中添加代码,并澄清你自己。只说“保存”会导致我说“创建变量”是的,这实际上是保存活动中任何数据的正确方法。正如@jobbert所说的,只需获取您需要的数据并将其保存在捆绑包中。一旦你来参加这个活动,就把它取回。