【问题标题】:Use checkbox in listview and get the value of them android在列表视图中使用复选框并获取它们的值 android
【发布时间】:2016-02-13 16:10:27
【问题描述】:

我正在开发一个应用程序,它通过 j-son 从服务器获取图片并在列表视图中向用户显示,用户可以通过复选框选择一些图片进行下载。

我想使用 2 个数组列表:

  • 一个用于图片网址
  • 另一个用于复选框值

我的问题是我对列表视图了解不多。当用户单击该行时,特殊行的复选框必须更改,以及如何从列表视图中获取复选框值(更重要)。

 void pics(JSONArray data){
   String url;int i;
   for (i=0;i<data.length();i++){
       try {
           String u=data.getJSONObject(i).getJSONObject("images").getJSONObject("res2").getString("url");
           String t=data.getJSONObject(i).getJSONObject("images").getJSONObject("resolution1").getString("url");
           myList.add(t);
           Lists.add(u);
           url=data.getJSONObject(i).getString("type");
         if (url.equals("video"))
             continue;
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
   }
   try {
    if(i<data.length()){
       String t=data.getJSONObject(i).getJSONObject("videos").getJSONObject("standard_resolution").getString("url");
       myList.set(i, t);}
    else{


    }
   } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}


}

【问题讨论】:

    标签: android checkbox android-listview


    【解决方案1】:

    您可以通过使用@SKT 建议的模型来实现这一点。 您可以将类型图像数据的列表创建为-

    List<ImageData> imagedatas= new ArrayList<>();
    

    现在你可以在for循环中添加图片数据的实例了-

    ImageData imageData = new ImageData();
    imageData.setUrl(u);
    

    如果您尚未创建自定义适配器,现在您需要创建自定义适配器,并且需要在CheckBox 上设置一个选中的OnCheckedChangeListener,并需要相应地修改ImageData 模型的值。

    【讨论】:

      【解决方案2】:

      你可以制作一个ModelClass ImageData

      class ImageData {
         private String url;
         private boolean isChecked;
      
         public void setChecked(boolean checked) {
             this.ischecked         = checked;
         }
      
         public void setUrl(String url) {
             this.url               = url;
         }
      
         public boolean isChecked() {
             return ischecked;
         }
      
         public String getUrl() {
             return url;
         }
      }
      

      在这个模型类中保存 json 并添加到 arraylist。将其传递给您的适配器并相应地绑定视图。当用户单击列表项时,更改相应模型类的 isChecked 值。点击事件可以在 baseadapter 类的getView 方法中处理

      如果实现了listitemclick 设置

      android:focusable="false"
      android:focusableInTouchMode="false"
      

      在 XML 中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-03
        • 1970-01-01
        相关资源
        最近更新 更多