将图像动态显示到列表视图项中

时间:2016-06-24 17:44:11

标签: android database listview imageview adapter

我开发Android应用程序一年以来所以我无法解决这类问题。我在朋友谷歌搜索了很多次,但实际结果为0。这是一个非常精确的问题,我尝试将图像动态显示到listview项目中,我的意思是:

1-我从我的数据库中收到一个int数组(例如:5,6,7,7)

2-我希望adpater根据这个数字显示不同的图像

例如,我收到:“结果”= {“1”,“2”,“3”}我希望应用程序将图像与此数字相关联(图像来自可绘制文件夹)

  

if(int number = 1){   imageview into item layout.setImageRessource(R.id.blabla)   }其他......

我真的不知道怎么做,我尝试构建自定义适配器,但它不显示listview ...

如果有人能告诉我这样做的好方法,我将是最快乐的开发者。

protected void showList() {
    try {
        JSONObject jsonObj = new JSONObject(myJSON2);
        Poeple2 = jsonObj.getJSONArray(TAG_RESULTS);

        for (int i = 0; i < Poeple2.length(); i++) {
            JSONObject c = Poeple2.getJSONObject(i);
            String username = c.getString(TAG_USERNAME);
            int mood = c.getInt(TAG_MOOD);

            HashMap<String, String> persons = new HashMap<String, String>();

            persons.put(TAG_USERNAME, username);
            persons.put(TAG_MOOD, String.valueOf(mood));
            personList2.add(persons);
        }

        // i used a simple adapter but i know it's a wrong way
        adapter = new SimpleAdapter(getActivity(), personList2, R.layout.modeluser4, new String[]{TAG_USERNAME, TAG_MOOD}, new int[]{R.id.tvHypo2, R.id.tvId});
        list3.setAdapter(adapter);

    } catch (JSONException e) {
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:0)

创建一个像

这样的开关
public void runTheSwitch(int num){
int number = num;
switch(number){
 case 1:
     //add image to listview
 case 2:
     //add image to listview
 case 3:
     //add image to listview

    ....and so on...
  }
 }

当你收到数据库中的数字数组(让我们称之为 ArrayNum )时,运行这些数字的循环。

For(int num : ArrayNum){
  runTheSwitch(num);

}

将此项放入方法并在设置适配器之前运行该方法。
因此,基本上在这种方法中,您可以将项目添加到Arraylist中,例如arraylist.add();,然后在此之后定义自定义适配器的对象并在适配器中传递Arraylist。
希望它有所帮助