android simpleadapter不显示图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android simpleadapter不显示图片相关的知识,希望对你有一定的参考价值。

楼主不觉得自定义adapter更好用么?simpleadapter貌似不能添加图片的。我这里给你一个简单自定义适配器的代码吧。
//2.适配器
BaseAdapter adapter = new BaseAdapter()

@Override
public View getView(int position, View convertView, ViewGroup parent)
Person person = (Person) getItem(position);
Context context = List1Activity.this;

LinearLayout layout = new LinearLayout(context);
layout.setTag(person);
layout.setOrientation(LinearLayout.HORIZONTAL);

//按照自己的意愿去绑定数据
TextView view1 = new TextView(context);
view1.setText(person.getName());
view1.setBackgroundColor(Color.argb(100, 0, 0, 255));
view1.setTextColor(Color.RED);

TextView view2 = new TextView(context);
view2.setText("$" + person.getMoney());
view2.setBackgroundColor(Color.argb(100, 0, 255, 0));
view2.setTextColor(Color.BLUE);

//图片
ImageView view3 = new ImageView(context);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
30, LayoutParams.MATCH_PARENT);
view3.setLayoutParams(params);
view3.setScaleType(ScaleType.FIT_CENTER);
if (person.isSex())
view3.setImageResource(R.drawable.girl);
else
view3.setImageResource(R.drawable.boy);


layout.addView(view1);
layout.addView(view2);
layout.addView(view3);

return layout;


@Override
public long getItemId(int position)
return 0;


@Override
public Object getItem(int position)
return list.get(position);


@Override
public int getCount()
return list.size();

;

// 3.界面组件
lstPerson.setAdapter(adapter);追问

这样做的话,点击item的时候参数应该如何传啊!我刚刚接触android还不熟传值方法!

追答

你还是加我qq聊好吧?1961158157

参考技术A 你的data参数明显不是Bitmap啊,根本就不会进到if里面。 参考技术B 这个适配器只显示文字 不显示图片 可以用其他适配器试试! 参考技术C 莫非,myListView没有实例化?追问

数据都显示就是图片不显示!

追答

问题出自于ViewBinder
定义时需要用这个:
SimpleAdapter.ViewBinder binder

追问

获取到图片地址还是返回false

追答

额。。。

Adapter是没问题的,问题就在于读取图片。
不知道怎么回事。楼主加油。

SimpleAdapter

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.hanqi.testapp2.TestActivity8">
11 
12     <ListView
13         android:layout_width="match_parent"
14         android:layout_height="wrap_content"
15         android:id="@+id/lv_2"></ListView>
16 
17 </LinearLayout>
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3      android:layout_width="match_parent"
 4     android:layout_height="wrap_content">
 5 
 6     <ImageView
 7         android:layout_width="70dp"
 8         android:layout_height="70dp"
 9         android:src="@drawable/f1"
10         android:id="@+id/iv_2"/>
11 
12     <LinearLayout
13         android:layout_width="0dp"
14         android:layout_height="match_parent"
15         android:orientation="vertical"
16         android:layout_weight="1"
17         android:layout_marginLeft="20dp"
18         android:gravity="center_vertical">
19 
20         <TextView
21             android:layout_width="match_parent"
22             android:layout_height="wrap_content"
23             android:text="名字=aaa"
24             android:id="@+id/tv_7"/>
25         <TextView
26             android:layout_width="match_parent"
27             android:layout_height="wrap_content"
28             android:text="内容=aaa"
29             android:id="@+id/tv_8"/>
30 
31 
32     </LinearLayout>
33 
34 </LinearLayout>
 1 package com.hanqi.testapp2;
 2 
 3 import android.support.v7.app.AppCompatActivity;
 4 import android.os.Bundle;
 5 import android.widget.ListView;
 6 import android.widget.SimpleAdapter;
 7 
 8 import java.util.ArrayList;
 9 import java.util.HashMap;
10 import java.util.List;
11 import java.util.Map;
12 
13 public class TestActivity8 extends AppCompatActivity {
14 
15     ListView lv_2;
16 
17     @Override
18     protected void onCreate(Bundle savedInstanceState) {
19         super.onCreate(savedInstanceState);
20         setContentView(R.layout.activity_test8);
21 
22         lv_2 = (ListView)findViewById(R.id.lv_2);
23 
24         //1、数据集合  Layout
25         List<Map<String,Object>> lm = new ArrayList<Map<String, Object>>();
26 
27         Map<String,Object> map = new HashMap<String, Object>();
28         map.put("img",R.drawable.f1);
29         map.put("name","美食1");
30         map.put("content","美食1的介绍");
31 
32         lm.add(map);
33 
34         map = new HashMap<String, Object>();
35         map.put("img",R.drawable.f2);
36         map.put("name","美食2");
37         map.put("content","美食2的介绍");
38 
39         lm.add(map);
40 
41 
42 
43         //数组  key的数组
44         String[] strings = {"img","name","content"};
45         int[] ids = {R.id.iv_2,R.id.tv_7,R.id.tv_8};
46 
47         //2、创建
48         SimpleAdapter simpleAdapter = new SimpleAdapter(this,lm,R.layout.simple_adapter,
49                 strings,ids);
50 
51         lv_2.setAdapter(simpleAdapter);
52     }
53 }

 技术分享

以上是关于android simpleadapter不显示图片的主要内容,如果未能解决你的问题,请参考以下文章

ListView / SimpleAdapter 不刷新 - Android

ListView的使用小记(使用SimpleAdapter显示列表实现Item的点击事件)

Android--Gridview使用SimpleAdapter加载bitmap图片

Android--Gridview使用SimpleAdapter加载bitmap图片

通过 SimpleAdapter 在 imageview 中显示图像

适配器之SimpleAdapter