simpleadapter-为Fragment中的ListView中的ImageView赋值在setAdapter()时报错

问题描述

为Fragment中的ListView中的ImageView赋值在setAdapter()时报错

public class MyFragment3 extends ListFragment{
private ListView lv;
private Context context;
private List> data;
private Map map;

public MyFragment3(Context context){
    this.context = context;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.mylog,container,false);
    lv = (ListView) view.findViewById(R.id.log_lv);
    return view;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    dataInit();
    SimpleAdapter adapter = new SimpleAdapter(context,data,R.layout.log_item,
            new String[]{"pic"},
            new int[]{R.id.log_pic});

    adapter.setViewBinder(new ViewBinder() {
        @Override
        public boolean setViewValue(View view, Object data,
                String textRepresentation) {
            if(view instanceof ImageView & data instanceof Bitmap){
                ImageView iv = (ImageView) view;
                Bitmap bt = (Bitmap) data;
                iv.setImageBitmap(bt);
                return true;
            }
            return false;
        }
    });

    lv.setAdapter(adapter);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
}

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
}

public void dataInit(){
    InputStream in = getResources().openRawResource(R.drawable.a);
    Bitmap bit = BitmapFactory.decodeStream(in);

    InputStream in1 = getResources().openRawResource(R.drawable.b);
    Bitmap bit1 = BitmapFactory.decodeStream(in1);

    data = new ArrayList<Map<String,Object>>();

    map = new HashMap<String,Object>();
    map.put("pic", bit);
    data.add(map);

    map = new HashMap<String,Object>();
    map.put("pic", bit1);
    data.add(map);
}

}

解决方案

oncreate()方法里的代码,可以写在oncreateview里面,有点看不大懂你的代码

时间: 2025-01-24 09:16:14

simpleadapter-为Fragment中的ListView中的ImageView赋值在setAdapter()时报错的相关文章

fragment 中 删除listview中的一行,执行更新数据,数据已经删除了,界面更新不了。

问题描述 fragment 中 删除listview中的一行,执行更新数据,数据已经删除了,界面更新不了. fragment 中 删除listview中的一行,执行更新数据,数据已经删除了,界面更新不了.退出程序,重新加载fragment界面可以显示删除后的界面请问改怎么刷新 fragment .网上说的adapter.notifyDataSetChanged();不行.新手求解答,谢谢大神!!! 解决方案 你要把listview对应的数据集中的记录也删除,然后adapter再 notify一下

Android中屏幕显示listview中的item数量

问题描述 Android中屏幕显示listview中的item数量 求大神告知,我如何获取当前屏幕显示出的listview的item数量呢?每个屏幕大小不一,能显示出的数量也是不一样的,有没有方法能够计算的?? 解决方案 刚才那个方法太笨,还可以调用ListView的setOnScrollListener方法,里头复写了一个onScroll方法,方法中的第二个参数就是当前ListView中可见的item数量.下例子中是visibleItemCount: listView.setOnScrollL

怎么在后台代码中访问ListView中&amp;amp;lt;EditItemTemplate&amp;amp;gt;模板中的控件?

问题描述 怎么在后台代码中访问ListView中<EditItemTemplate>模板中的控件?今天研究了很长时间,现在我可以通过以下后台代码访问<InsertItemTemplate>模板中控件:protectedvoidDropDownList1_SelectedIndexChanged(objectsender,EventArgse){DropDownListb=(DropDownList)ListView1.InsertItem.FindControl("Dro

如何实现:一个Tab中的List点击某个Item后想把该项添加到另一个tab中的ListView中?

问题描述 一个Tab中的List点击某个Item后如何才能把该项添加到另一个tab中的ListView中?public class Tab2ListAdapter extends BaseAdapter {ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();private LayoutInflater inflater;public Tab2Li

winform-引用.net中的System.speech包,但是在程序运行时报错。

问题描述 引用.net中的System.speech包,但是在程序运行时报错. C# Winform项目中,利用Windows类库,引用.net中的System.speech语音控制包. 在程序运行执行到"SRE.SetInputToDefaultAudioDevice();"报错,提示"值不在预期的范围内.". 但是将工程中Program.cs文件的Main()方法上面的[STAThread] 这个关键字去掉,程序正常运行.但是将[STAThread]去掉会导致本

[Android]解决ClickableSpan中点击后ListView中item的长按冲突的问题

以下内容为原创,转载请注明: 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3823429.html   项目中碰到一个问题,情景是这样的: 有一个ListView,每个item中有一个TextView,这个TextView实现了LongClick事件,这个TextView中又添加了ClickableSpan,实现了方法onClick. 我的需求是点击ClickableSpan,则响应ClickableSpan事件:长按ClickableSpan

item-一个listview中的值如何传递给另一个listview,在线等,急

问题描述 一个listview中的值如何传递给另一个listview,在线等,急 今天遇到一个问题,在第一个界面有一个listview,我现在要将这个listview中item中的值传递给另一个activity中的listview中,这如何解决???? 解决方案 你可以在listview的adapter中定义一个方法,用于获取item中的内容,然后给listview设置onitemclick事件,在点击时调用该方法,然后可以通过 bundle将得到的item的值传给另一个activity的lis

a...-怎么用baseadapter将sqlite中的数据库适配到一个fragment里的listview?

问题描述 怎么用baseadapter将sqlite中的数据库适配到一个fragment里的listview? 想用baseadapter添加listview中图片资源,同时通过baseadapter为listview中按钮设置监听事件,有那位好心的大侠帮帮忙! 解决方案 重写一个适配器,把数据库的数据遍历出来 存在一个集合里面,再setAdapter 就行了 解决方案二: 你自少要说下数据库数据是什么样的 你要的adapter需要那些参数 解决方案三: 你自少要说下数据库数据是什么样的 你要的

android ListView中自定义SimpleAdapter动态添加ratingBar及图片更新

android中listView的实现有多种方式,但是当我们利用simpleAdapter实现listView的时候,SimpleAdapter并没有提供显示一个ratingBar的功能(即上面的星星用来评分的控件).要实现上面的功能,我们可以通过继承SimpleAdapter类重写其中一些方法来实现.下面即是此类的实现: package nate.android.Service; import java.util.List; import java.util.Map; import com.n