【问题标题】:set TextView value for array为数组设置 TextView 值
【发布时间】:2013-08-22 06:20:28
【问题描述】:

我创建了一个应用程序,我在其中刷了几张照片,我已将这些照片添加到一个数组中,我想获取这些项目的简单数值(例如:-1、2、3 等)我已经使用了for循环,并将这些值设置为textview,然后将这些textview动态添加到linearlayout,然后将这个linearlayout添加到viewgroup容器中。 通过这样做,我只能显示数组项的最后一个数值;下面是我的代码。

LinearLayout linearlay=new LinearLayout(context);
linearlay.setOrientation(LinearLayout.VERTICAL);

    imageView.setImageResource(image_id[position]);
    linearlay.addView(imageView,0);
    for(int i=0;i<image_id.length;i++)
    {
                  linearlay.removeView(textView);
          textView.setText("Image: "+(i+1));
          linearlay.addView(textView);
          ((ViewPager) container).addView(linearlay);
    }
            return linearlay;
}   TextView textView=new TextView(context);

我想将文本值设置为 1,2,3... 并在布局中显示它,但只显示最后一个值。

【问题讨论】:

  • 你想将数组项设置为你的文本视图吗???
  • 使用 append 代替 setText 或将其移到 for 循环之外
  • 是的。我正在使用 setText() 方法设置它,但只显示最后一个值
  • @user2561559 append 而不是 setText。并将linearlay.addView(textView); ((ViewPager) container).addView(linearlay) 移出循环

标签: android arrays textview


【解决方案1】:

进行以下三个更改 - 1) 移除 linearlay.removeView(textView);来自代码。

它正在删除你最后添加的文本视图

2) 还添加 append 代替 setText

3) 还要放 linearlay.addView(textView); ((ViewPager) 容器).addView(linearlay); 外循环。

【讨论】:

    【解决方案2】:

    试试这个

    linearlay.addView(imageView,0);
    textView=new TextView(context); // declare textview as a class member
    linearlay.addView(textView); 
    ((ViewPager) container).addView(linearlay);
        for(int i=0;i<image_id.length;i++)
        {
              textView.append("Image: "+(i+1));
    
        }
        return linearlay;
    }   
    

    【讨论】:

    • 有了这个,我在单张照片​​上得到输出:-图像 1,图像 2,图像 3。而我想在单张照片​​上获得文本视图作为图像 1 的输出,在滑动时,第二张照片的 textview 输出应该是 Image 2.
    • @user2561559 那么你不需要for循环。当您滑动时,您需要将值设置为 textview。
    • 这也是我之前在做的事情,通过这样做我得到了每张照片上的输出图像 6,请告诉我如何纠正这个问题。
    • @user2561559 检查此developer.android.com/reference/android/support/v4/app/…。尤其是这一行View tv = v.findViewById(R.id.text); ((TextView)tv).setText("Fragment #" + mNum),它将显示当前的片段页面。不知道你用的是什么。但代码 sn-ps 使用FragmentPagerAdapter
    • @user2561559 您需要在视图寻呼机适配器中使用位置参数
    【解决方案3】:

    将以下行放在for循环之外:

    linearlay.removeView(textView);
    

    Bcs,它每次都在删除文本视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2014-09-13
      相关资源
      最近更新 更多