【问题标题】:Android - update textview in same fragments by using viewPagerAndroid - 使用 viewPager 更新相同片段中的 textview
【发布时间】:2016-02-19 09:16:58
【问题描述】:

我在ViewPager 中动态创建了五个不同的Fragment,每个Fragment 都有一个TextView。因此,如果ViewPager 从一个Fragment 移动到另一个Fragment,我计划更新TextView 上的片段位置。所以我创建了TextView,比如:

public static  TextView txt_starProgress;
public static  TextView txt_radioProgress; 
public static  TextView txt_checkProgress;
public static  TextView txt_yesnoProgress;
public static  TextView txt_overallProgress;

在每个Fragment 上,当ViewPager 从一个Fragment 移动到另一个Fragment 时,通过以下代码更新Activity 中的值。

if(activities.contains("StarRatingActivity"))
StarRatingActivity.txt_starProgress.setText(Integer.toString(pageCount));
if(activities.contains("RadioButtonActivity"))
RadioButtonActivity.txt_radioProgress.setText(Integer.toString(pageCount));
if(activities.contains("CheckBoxActivity"))
CheckBoxActivity.txt_checkProgress.setText(Integer.toString(pageCount));
if(activities.contains("YesNoActivity"))
YesNoActivity.txt_yesnoProgress.setText(Integer.toString(pageCount));
if(activities.contains("OverallActivity"))
OverallActivity.txt_overallProgress.setText(Integer.toString(pageCount));

它工作正常。然后我动态创建了相同的五个Fragments 并尝试更新TextView,但页面位置没有正确更新。我该如何解决这个问题。

【问题讨论】:

  • 你的问题不清楚,请解释清楚,
  • 制造任何View static 是个坏主意,因为它是memory leaks 的原因
  • 我怎样才能实现那个。

标签: android android-fragments fragment android-fragmentactivity


【解决方案1】:

如果你想动态更新你的 ViewPager 的 TextView,那么你必须调用这个方法 - notifyonDataChanged()

【讨论】:

    【解决方案2】:

    您可以像这样在页面适配器中创建或传递片段的参数

    YourFragment yourFragment = yourPagerAdapter.getItem(position);
    Bundle arg = new Bundle();
    arg.putString("string", string);
    yourFragment.setArguments(extras);
    return yourFragment;
    

    在 YourFragment.class 中,您可以像下面的代码一样在 onCreate() 中获取传递的值

    Bundle arg = getArguments();
    String string = arg.getString("string");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多