【问题标题】:TextView forgets its value after tab switching切换标签后TextView忘记了它的值
【发布时间】:2015-08-22 14:52:38
【问题描述】:

我在我的程序中设置了一个 tabhHost,其中包含 3 个选项卡,每个选项卡的内容中都有一个包含 textView 的片段。我在应用程序中设置了一个按钮,该按钮应该更新每个选项卡的内容。然而,我现在面临的问题是,如果我更改一个选项卡,它的内容会被遗忘,并且新选项卡也没有任何价值,除非我再次单击该按钮。每个选项卡内容都有一个不同的类,但在每个选项卡中,该类只返回带有 textview 的视图。我假设在每个视图上重置的值都会膨胀,但是我找不到合理的方法让它按照我的意图工作。

这是我的按钮运行的方法的代码部分:

 public void getNum(View view) {

    proteinNeeded = weightNum.getValue() * FirstActivity.weightMultiplier;
    carbohydrateNeeded = weightNum.getValue() * 5;

    switch (weightMultiplier) {
        case 2: {
            resultTxt = String.format("Zapotrzebowanie:%nBiałko - %dg.%nWęglowodany - %dg.%n",
                    FirstActivity.proteinNeeded, FirstActivity.carbohydrateNeeded);
            FragmentTab.tv.setText(resultTxt);

            FragmentTab2.dietTxt = String.format("text1");
            FragmentTab2.tv.setText(FragmentTab2.dietTxt);

            FragmentTab3.foodTxt = String.format("text2");
            FragmentTab3.tv.setText(FragmentTab3.foodTxt);....

这是来自 FragmentTab.java 的代码,每个选项卡都有或多或少相同的代码,所以我现在只发布这个:

public class FragmentTab extends Fragment {

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


public static View v;
public static TextView tv;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    v = inflater.inflate(R.layout.fragment_layout, container, false);
    tv = (TextView) v.findViewById(R.id.textResult);

    if (tv != null) {
        tv.setText("nothing has been input yet");
    }


    return v;
}

}

TL;DR - 我如何在 textView 中保存我的值,以便在我的文本更新后它不会在视图刷新后恢复为默认值?

【问题讨论】:

    标签: android android-fragments tabs android-tabhost


    【解决方案1】:

    解决您的问题的一个选项是使用 SQLite 数据库来保存您的数据,并在您返回该选项卡时从数据库中获取它。

    您可以参考此链接。 Saving Data in SQL Databases.

    有关其他 android 存储选项,请参阅本系列视频。 Android Data Storage Options.

    【讨论】:

      猜你喜欢
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 2021-02-25
      • 2012-07-15
      • 1970-01-01
      • 2021-09-07
      相关资源
      最近更新 更多