【问题标题】:ViewPager: SetText of inflated viewViewPager:膨胀视图的 SetText
【发布时间】:2012-08-12 22:52:19
【问题描述】:

我正在尝试使用 ViewPager 在布局中设置 TextView 的文本。这是我的代码:

    setContentView(R.layout.main);

    MyPagerAdapter adapter = new MyPagerAdapter();
    ViewPager myPager = (ViewPager) findViewById(R.id.Panel);
    myPager.setAdapter(adapter);
    myPager.setCurrentItem(0);

    String text;

    if (Math.floor(hours) <= 12)
        text= hourFormat.format((Math.floor(hours)));

    else
        text= hourFormat.format((Math.floor(hours) - 12));


    Typeface FontType = Typeface.createFromAsset(this.getAssets(),"fonts/TIMES_SQ_0.TTF");

    View sResource = getLayoutInflater().inflate(R.layout.setup, null);
    Method = (TextView) sResource.findViewById(R.id.Method);
    Method.setTypeface(FontType);
    Method.setTextSize(20);
    Method.setText(text);

ViewPager 工作正常,设置字体和大小不起作用。设置文本也不起作用。我不知道为什么 setText 不起作用。此外,该文本是动态的,所以我不能使用资源字符串来设置它。

澄清:小时是一天中的小时。

【问题讨论】:

标签: android android-viewpager settext


【解决方案1】:

在这段代码中,你初始化了text,但从不给它赋值。

String text;

...

Method.setText(text);

执行以下操作:

String text;

...

text = "my text";    

Method.setText(text);

或者,如果您将其分配到其他地方,只需删除 String text;

【讨论】:

  • 我只是不显示它,但文本是动态更改的。我的意思是表明我正在使用变量设置文本。
  • 那么请展示它,因为它是真正的问题所在。如果你的代码中有这一行:String text;,那么即使你真的动态改变它,它也会被这一行重置。
  • 我真的不明白你的代码。它看起来像是Activity 或Fragment,因为您在其中为ViewPager 设置了一个适配器。如果这是真的,那么您的 Method TextView (顺便说一句,不要以大写字母开头的变量名)在您的 Activity 内,而不是 ViewPager 内(否则您将在适配器内初始化它)。所以ViewPager 与问题无关,不是吗?尝试删除设置 Typeface 和 textSize 的行,以查看文本是否更改。还有Log.d("MyActivity", text); 看看值是否存在,也许它是空的?我现在要睡觉了,待会见
  • 非常感谢,问题是我应该在 ViewPager 中设置文本,无论如何视图都在膨胀。对不起,我的问题让我感到困惑,下次我一定会更清楚。
【解决方案2】:

如果你想分配一个值,你必须给你的String text一个值。像这样的:

String text = "This is the text I want in my view";

添加后,它应该可以工作。

【讨论】:

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