我开发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();
}
}
答案 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。
希望它有所帮助