【问题标题】:Changing TextView content in fragment更改片段中的 TextView 内容
【发布时间】:2017-04-16 22:12:38
【问题描述】:

我有一个片段,实际上你有 3 个页面,你可以用它来滑动。 在每个页面上,您都有一个默认字符串,例如“Hello World from section: %1$d”,它保存在字符串中。 xml"

片段java类方法如下:

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_generaldiscription, container, false);
        TextView textView = (TextView) rootView.findViewById(R.id.section_label);
        textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER)));
        textView.setText("test"); // testing purposes
        return rootView;
    }
}

我的问题是:我不希望每个页面都有相同的文本。第 1 节有 "Hello world from section: 1" ,第 2 节有 "Hello world from section: 2"

我希望第 1 部分有一个不同的字符串,例如“你好,这是你片段的第 1 部分”。如何处理片段中的不同部分以显示不同的字符串?

谢谢。

【问题讨论】:

    标签: android fragment


    【解决方案1】:

    处理起来看起来很痛苦。 我喜欢改用Cheesesquare。要添加一个页面,你只需要:adapter.addFragment(new CheeseListFragment(), "Category 1"); ,并且自定义在片段类中完成

    【讨论】:

      【解决方案2】:

      您似乎需要一个变量来显示不同的字符串。这就是 strings.xml 不起作用的原因。


      这是我的解决方案

      第一步:

      自定义一个构造函数,其中包含一个字符串对象来描述文本视图

      第二步:

      在 FragmentAdapter 类中使用不同的字符串初始化三个片段对象

      第三步: 测试它是否可以工作

      嗯。代码有点繁琐,不方便我写在这里。试试吧,你可以的:)

      【讨论】:

        【解决方案3】:

        我认为在每一页上你都会得到“Hello world from section: 1”,如果你在第 2 节页面上添加另一个文本,它会将两个文本重叠在一起。 我遇到了这个问题,然后我在布局中使用 android:background="#ffffff" ,因此如果您想要在背景中设置另一种颜色或图像,则第 1 节文本由于背景颜色而变为白色。 然后第 2 节将仅显示“来自第 2 节的 Hello world”通过 xml 设置。 这不是完美的解决方案,但对我有用。

        【讨论】:

          猜你喜欢
          • 2019-02-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-29
          相关资源
          最近更新 更多