Android保存和恢复文本视图文本视图寻呼机片段

Android保存和恢复文本视图文本视图寻呼机片段,android,android-fragments,Android,Android Fragments,在我的ViewPager中,我有一些片段,在TextView文本的页面间切换清除后,我动态地更改了一些TextView文本,并且我无法从实例保存和还原它们 这是我的代码,不工作 private String value1; private String value2; private String value3; @Overri

在我的
ViewPager
中,我有一些片段,在
TextView
文本的页面间切换清除后,我动态地更改了一些
TextView
文本,并且我无法从
实例保存和还原它们

这是我的代码,不工作

private       String                       value1;
private       String                       value2;
private       String                       value3;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //@formatter:off
        context            = getActivity().getBaseContext();
        activity           = getActivity();
    //@formatter:on
}
@Override
public void onViewStateRestored(@Nullable Bundle inState) {
    super.onViewStateRestored(inState);
    if (inState != null) {
        inState.getString("value1", value1);
        inState.getString("value2", value2);
        inState.getString("value3", value3);

        sahmiyeh_value_1.setText(value1);
        sahmiyeh_value_2.setText(value2);
        sahmiyeh_value_3.setText(value3);
    }
}

@Override
public void onSaveInstanceState(@Nullable Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("value1", sahmiyeh_value_1.getText().toString());
    outState.putString("value2", sahmiyeh_value_2.getText().toString());
    outState.putString("value3", sahmiyeh_value_3.getText().toString());
}

您没有声明字符串值

value1、value2、value3
为空。这就是为什么TextView或EditText没有价值的原因

@Override
public void onViewStateRestored(@Nullable Bundle inState) {
    super.onViewStateRestored(inState);
    if (inState != null) {
        value1 = inState.getString("value1");
        value2 = inState.getString("value2");
        value3 = inState.getString("value3");

        sahmiyeh_value_1.setText(value1);
        sahmiyeh_value_2.setText(value2);
        sahmiyeh_value_3.setText(value3);
    }
}
或者你可以这样做

sahmiyeh_value_1.setText(inState.getString("value1"));
sahmiyeh_value_2.setText(inState.getString("value2"));
sahmiyeh_value_3.setText(inState.getString("value3"));

您没有声明字符串值

value1、value2、value3
为空。这就是为什么TextView或EditText没有价值的原因

@Override
public void onViewStateRestored(@Nullable Bundle inState) {
    super.onViewStateRestored(inState);
    if (inState != null) {
        value1 = inState.getString("value1");
        value2 = inState.getString("value2");
        value3 = inState.getString("value3");

        sahmiyeh_value_1.setText(value1);
        sahmiyeh_value_2.setText(value2);
        sahmiyeh_value_3.setText(value3);
    }
}
或者你可以这样做

sahmiyeh_value_1.setText(inState.getString("value1"));
sahmiyeh_value_2.setText(inState.getString("value2"));
sahmiyeh_value_3.setText(inState.getString("value3"));

您可以尝试
freezesText

<TextView 
 ... 
 android:freezesText="true" />

从文件:

如果设置,文本视图将在其冻结的冰柱内包括当前完整文本,以及元数据,如当前光标位置。默认情况下,这是禁用的;当文本视图的内容未存储在持久位置(如内容提供程序)时,它可能非常有用


您可以尝试
freezesText

<TextView 
 ... 
 android:freezesText="true" />

从文件:

如果设置,文本视图将在其冻结的冰柱内包括当前完整文本,以及元数据,如当前光标位置。默认情况下,这是禁用的;当文本视图的内容未存储在持久位置(如内容提供程序)时,它可能非常有用


非常感谢小姐:)欢迎:)我很高兴(至少)我帮助了你。非常感谢小姐:)欢迎:)我很高兴(至少)我帮助了你。@LaraBelle猫头鹰眼:)@Piyush,因为我对冷冻食品感到困惑。我对android还是新手。所以,我试图找到这篇文章,发现他刚刚抄袭了拉哈夫·苏德的答案。@LaraBelle这对发展是件好事!我希望你能成为一名优秀的开发者@拉拉贝尔猫头鹰眼:)@Piyush,因为我对冰柜文本感到困惑。我对android还是新手。所以,我试图找到这篇文章,发现他刚刚抄袭了拉哈夫·苏德的答案。@LaraBelle这对发展是件好事!我希望你能成为一名优秀的开发者!