Android:String List中的变量总是返回0

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android:String List中的变量总是返回0相关的知识,希望对你有一定的参考价值。

我正试图在TextViewList中设置Strings中的文本。我可以看到LogCat中的值,但是当我把它放在TextView时我得到0.可能是什么问题?

编辑我的List不是空的,我可以在LogCat看到价值!

List<String> listResult = new ArrayList<String>();
// here i'm putting some data 
if (listResult != null)
{ 
    for (int i=0;i<listResult.size();i++)
    {
        Log.i("position",listResult.get(i)+"")//i can see the componnent of the list
        textView1.setText(position+1+"");
        textView3.setText(listResult.get(i)+"");//I'm getting 0
    }
    Log.i("*******","***************");
    Log.i("position",listResult+"")//i can see the whole list
}

这是我得到的LogCat:

05-20 11:39:07.970: I/position(21761): 0
05-20 11:39:07.970: I/position(21761): 2
05-20 11:39:07.970: I/position(21761): 0
05-20 11:39:07.970: I/position(21761): 0
05-20 11:39:07.970: I/position(21761): 0
05-20 11:39:07.970: I/position(21761): 0
05-20 11:39:07.970: I/position(21761): 6
05-20 11:39:07.971: I/position(21761): 0
05-20 11:39:07.971: I/position(21761): 0
05-20 11:39:07.971: I/position(21761): 2
05-20 11:39:07.971: I/position(21761): 0
05-20 11:39:07.971: I/position(21761): 4
05-20 11:39:07.971: I/position(21761): 0
05-20 11:39:07.971: I/position(21761): 0
05-20 11:39:07.971: I/*******(21761): ***************
05-20 11:39:07.972: I/position(21761): [0, 2, 0, 0, 0, 0, 6, 0, 0, 2, 0, 4, 0, 0]
答案

TextView中获得0的原因是,当你调用setText()时,它会设置一个替换先前设置的文本(如果有的话)。因此,在您的情况下,您只需获得最后一次迭代的结果,即0。为了在TextView中显示整个列表,您应该使用append()方法向每次迭代中添加的新文本添加新文本。 for loop应如下所示:

for (int i=0; i < listResult.size(); i++) {
    Log.i("position", listResult.get(i) + "")
    textView1.append(String.valueOf(position+1));
    textView3.append(listResult.get(i).toString() + " ");
}
另一答案

你刚刚初始化了你的ArrayList。你的ArrayList什么都没有。初始化后,您需要在ArrayList中添加元素,如:

 listResult.add("text1");
 listResult.add("text2");

更新:尝试这种方式

 textView1.setText(position+1);
 textView3.setText(listResult.get(i));
另一答案

迭代空列表(您的代码在该行中缺少=):

List<String> listResult = new ArrayList<String>();

里面什么都没有,所以一切都很好。

以上是关于Android:String List中的变量总是返回0的主要内容,如果未能解决你的问题,请参考以下文章

如何将 List<Map<String,dynamic> 转换为 Dart 中的单个变量?

AJAX 将 JavaScript 字符串数组发布到 JsonResult 作为 List<string> 总是返回 Null?

从函数变量来获取每个更改的值

Flutter:我如何从 List<String> 中的 firestore 获取数据?

android如何从本地变量存储在全局变量

关于 C# 中list<string> 的用法