【问题标题】:For Loop, ArrayListFor 循环,数组列表
【发布时间】:2015-02-25 12:13:26
【问题描述】:

这可能是一个非常非常简单的问题,我是 java 新手,我得到了一个 烦人的问题,让我试着描述一下我的问题。

当用户选择我的列表视图项时,for 循环返回该选定项的标题。现在,当用户选择另一个,而最后选择的项目仍然被选中时,应用程序会返回如下内容:

> Item1 // for one item selected

> Item2 // when 2 items are selected
> Item2
> Item2

现在我希望 3 个选定项目的结果如下:

Item1 
Item2
Item3

也许它是我的代码或 ListView,但.. 我不知道呵呵。谢谢你的样子。/

int count = lv.getCheckedItemCount;
 SelectedItems = new ArrayList<String>();
 for(int i = 0; i< count; i++){
 SelectedItems.add(somevalue);

 }
 for(String test : SelectedItems){
 Log.d("String of SI", test);
  }

【问题讨论】:

  • 请不要以第一个字母大写(SelectedItems)命名变量,惯例是变量以小写开头(selectedItems
  • 嗯这会引起我的问​​题吗??
  • 不,这就是为什么它是一个注释,而不是一个答案 - 但它会让你成为一个更好的 Java 程序员(坚持约定真的很有帮助!),并且会帮助人们在查看你的代码时理解它。
  • 好的,谢谢我试着遵守这条规则。
  • @sadasd:somevalue 是什么意思?

标签: java android for-loop arraylist


【解决方案1】:

在放入之前必须检查对象是否在数组中,因为两个数组列表可以包含 2 倍的相同值/对象

int count = lv.getCheckedItemCount;
 selectedItems = new ArrayList<String>();
 for(int i = 0; i< count; i++){
if(!selectedItems.contains(somevalue) 
SelectedItems.add(somevalue);

 }
 for(String test : selectedItems){
 Log.d("String of SI", test);
  }

【讨论】:

    【解决方案2】:

    事实上,您必须验证某个值是否存在于 selectedItems ArrayList 中。 如果 somevalue 中不存在,则必须将 somevalue 放入 Arraylist 中。

    所以:

    int count = lv.getCheckedItemCount;
    List selectedItems = new ArrayList<String>();
    for(int i = 0; i < count; i++){
         if(!selectedItems.contains(somevalue))    
               selectedItems.add(somevalue);    
     }
     for(String test : selectedItems){
     Log.d("String of SI", test);
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-08
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      相关资源
      最近更新 更多