android - 将 simpleAdapter 与 ListView 的图像一起使用

标签 android listview android-listview

我在使用简单适配器将图像放入 ListView 时遇到了一些问题。我从我的在线服务器(亚马逊)获取图像。根据用户 ID 下载图像后,我尝试在 ListView 中设置它们,但没有显示任何内容,也没有发生错误。

下面是我的代码:

// looping through All applicants
                for (int i = 0; i < applicant.length(); i++) {
                    JSONObject c = applicant.getJSONObject(i);

                    // Storing each JSON item in variable
                    String uid = c.getString(TAG_UID);
                    String name = c.getString(TAG_NAME);
                    String overall = c.getString(TAG_OVERALL);
                    String apply_datetime = c.getString(TAG_APPLY_DATETIME);
                    String photo = c.getString(TAG_PHOTO);

                    // creating new HashMap
                    //HashMap<String, String> map = new HashMap<String, String>();

                    //IMAGE
                    HashMap<String, Object> map = new HashMap<String, Object>();

                    // adding each child node to HashMap key (value)
                    map.put(TAG_UID, uid);
                    map.put(TAG_NAME, name);
                    map.put(TAG_OVERALL, overall);
                    map.put(TAG_APPLY_DATETIME, apply_datetime);

                    // adding HashList to ArrayList
                    // applicantsList.add(map);

                    // LISTING IMAGE TO LISTVIEW
                    try {
                        imageURL = c.getString(TAG_PHOTO);

                        InputStream is = (InputStream) new URL(
                                "my url link/images/"
                                        + imageURL).getContent();
                        d = Drawable.createFromStream(is, "src name");
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

                    map.put(TAG_PHOTO, d);

                    // adding HashList to ArrayList
                    applicantsList.add(map);
                }

正如你所看到的,在我下载图像之后。我使用下面的 simpleAdapter 设置为 listview:

 SimpleAdapter adapter = new SimpleAdapter(
                            SignUpApplicantActivity.this, applicantsList,
                            R.layout.list_applicant, new String[] {
                                    TAG_UID, TAG_NAME, TAG_OVERALL,
                                    TAG_APPLY_DATETIME, TAG_PHOTO }, new int[] {
                                    R.id.applicantUid, R.id.applicantName,
                                    R.id.applicantOverall,
                                    R.id.apply_datetime, R.id.list_image });
                    // updating listView
                    setListAdapter(adapter);

最佳答案

你调用了notifyDatasetChange()吗?如果您不调用它,您的适配器可能不会失效。

关于android - 将 simpleAdapter 与 ListView 的图像一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13450432/

相关文章:

c# - fragment visual studio xamarin 上的访问按钮

android - 如何在具有水平 ScrollView 的 ListView 行上添加多个 ImageView

android - 在 Android 中将 notifyItemRemoved 或 notifyDataSetChanged 与 RecyclerView 一起使用

android - 内部 View 的自定义 ListActivity 和 onListItemClick

Android:Listview 不会启动新类已修复

android - 将已解析的 Json 数据更新到 Listview

android - Graphical Layout 显示ViewFlipper 的第一个 View ,如何查看其他 View ?

android - 要在进程中运行 dex,Gradle 守护进程需要更大的堆。它目前大约有 910 MB

android - ViewPager 中的可滚动 TextView

android - 游标循环但只重复第一个值