android-在listview中使用自己的图像

问题描述

在listview中使用自己的图像
我创建的程序里,想把10个图像显示在 ListView视图中
创建的类如下;

public class LayoutAdapterObj { public String addString; public ImageView leftImage; public String backgroundImageName; public LayoutAdapterObj(String addStringImageView leftImageNameString backgroundImageName){     this.addString = addString;     this.leftImage = leftImageName;     this.backgroundImageName = backgroundImageName; }

LayoutAdaptor对象

aArray.add(new LayoutAdapterObj(""1""new ImageView(null null R.drawable.frame1)R.drawable.layout""));    aArray.add(new LayoutAdapterObj(""2""new ImageView(null null R.drawable.frame2)R.drawable.layout""));    LayoutListAdapter m_adapter;    m_adapter = new LayoutListAdapter(this R.layout.topbarlayout aArray);

adapter类

 public View getView(int position View convertView ViewGroup parent) {                View v = convertView;                if (v == null) {                    LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);                        v = vi.inflate(R.layout.layout1 null);                }                LayoutAdapterObj o = items.get(position);                if (o != null) {                        TextView addText = (TextView) v.findViewById(R.id.addtext);                                             ImageView leftImage=(ImageView)v.findViewById(R.id.layoutframe);                        if(!o.backgroundImageName.equals(""""))                        {                        }                        if(addText!=null)                        {                            addText.setText(o.addString);                        }

错误信息:

java.lang.IllegalStateException: Could not execute method of the activityif(leftImage != null){    leftImage= o.leftImage;}

怎么出现的这个错误呢?

解决方案

请看这个例子:

 class UserListAdapter extends ArrayAdapter<String>         {                @Override            public int getCount() {                // TODO Auto-generated method stub                int temp;                if(SharedVariables.is_traffic_search_ON_flag){                    temp=search_cases_trafficTicketsList.size();                }else{                    temp=search_cases_criminalTicketsList.size();                }                return temp;            }            Activity context;            public UserListAdapter(Activity context) {                super(context 0);                Log.d(""hh""sgbdfjfdgfk"");                this.context = context;            }             class ViewHolder {                 RelativeLayout rl2;                 ImageView genderimage;                 TextView ticketcounttt;                 TextView name;                 TextView city;                 TextView added_date;            }            @SuppressWarnings(""unused"")            public View getView(final int position View convertView ViewGroup parent){//here we inflating the layout ""R.layout.cars_row""                ViewHolder holder;                View rowView = convertView;                if (rowView == null) {                    LayoutInflater inflater = context.getLayoutInflater();                    if(SharedVariables.is_traffic_search_ON_flag)rowView = inflater.inflate(R.layout.traffic_row null true);                    else rowView = inflater.inflate(R.layout.criminal_row null true);                    holder = new ViewHolder();                    holder.rl2=(RelativeLayout) rowView.findViewById(R.id.rl2);                     try{                    holder.genderimage=(ImageView) rowView.findViewById(R.id.genderimage);                    }catch (Exception e) {                        e.printStackTrace();                        // TODO: handle exception                    }                    holder.ticketcounttt=(TextView) rowView.findViewById(R.id.ticketcounttt);                    holder.name=(TextView) rowView.findViewById(R.id.textView1);                    holder.city=(TextView) rowView.findViewById(R.id.textView2);                    holder.added_date=(TextView) rowView.findViewById(R.id.textView333);                    //Traffic cases...                    if(SharedVariables.is_traffic_search_ON_flag)                    {                        if(search_cases_trafficTicketsList.get(position).CaseID!=0)holder.rl2.setBackgroundResource(R.drawable.green_color1); //Pink color...                        else  holder.rl2.setBackgroundResource(R.drawable.pink_color); //Green color...            if(search_cases_trafficTicketsList.get(position).Sex.equals(""M""))holder.genderimage.setBackgroundResource(R.drawable.man);                        else holder.genderimage.setBackgroundResource(R.drawable.woman);            holder.ticketcounttt.setTypeface(SharedVariables.font);            holder.name.setTypeface(SharedVariables.font);            holder.city.setTypeface(SharedVariables.font);            holder.added_date.setTypeface(SharedVariables.font);            holder.name.setText(search_cases_trafficTicketsList.get(position).FirstName+"" ""+search_cases_trafficTicketsList.get(position).LastName);            holder.city.setText(search_cases_trafficTicketsList.get(position).City+"" City""+""(""+search_cases_trafficTicketsList.get(position).ZIP+"")"");                        try{                            String s[]=search_cases_trafficTicketsList.get(position).ViolationDate.split(""/"");                            String month=SharedVariables.convertFromNumberToMonth(Integer.parseInt(s[0]));                            String day=s[1];                            String year=s[2].substring(04);                        holder.added_date.setText(""Added: ""+Integer.parseInt(day)+"" ""+month+"" ""+year);                          }catch (Exception e) {                            e.printStackTrace();                            // TODO: handle exception                        }                                   try{                            holder.ticketcounttt.setText(""""+search_cases_trafficTicketsList.get(position).Violations.split("").length);                        }catch (Exception e) {                            e.printStackTrace();                            // TODO: handle exception                        }                           }                    //Criminal casess...                    else{                        if(search_cases_criminalTicketsList.get(position).CaseID!=0)holder.rl2.setBackgroundResource(R.drawable.green_color1); //Pink color...                        else  holder.rl2.setBackgroundResource(R.drawable.pink_color); //Green color...                holder.ticketcounttt.setTypeface(SharedVariables.font);            holder.name.setTypeface(SharedVariables.font);            holder.city.setTypeface(SharedVariables.font);            holder.added_date.setTypeface(SharedVariables.font);            holder.name.setText(search_cases_criminalTicketsList.get(position).FirstName+"" ""+search_cases_criminalTicketsList.get(position).LastName);            holder.city.setText(search_cases_criminalTicketsList.get(position).City+"" City"");                        try{                            String s[]=search_cases_criminalTicketsList.get(position).ViolationDate.split(""/"");                            String month=SharedVariables.convertFromNumberToMonth(Integer.parseInt(s[0]));                            String day=s[1];                            String year=s[2].substring(04);                        holder.added_date.setText(""Added: ""+Integer.parseInt(day)+"" ""+month+"" ""+year);                          }catch (Exception e) {                            e.printStackTrace();                            // TODO: handle exception                        }                                   try{                            holder.ticketcounttt.setText(""""+search_cases_criminalTicketsList.get(position).Violations.split("").length);                        }catch (Exception e) {                            e.printStackTrace();                            // TODO: handle exception                        }                           }                    rowView.setTag(holder);                                 }                else                {                    holder = (ViewHolder) rowView.getTag();                }                return rowView;            }            @Override            public long getItemId(int position) {                // TODO Auto-generated method stub                return position;            }        }

然后再调用 adapter

UserListAdapter a=new UserListAdapter(); yurlistview.setAdapter(a);

解决方案二:
不用传drawable对象的,把R.drawable.frame1传进LayoutAdapterObj就行了,在adapter里
context.getResource().getDrawable(o.什么)就可以的

解决方案三:
楼主log太少了...
另外 leftImage= o.leftImage; 一般不会把一个控件传递给另一个控件
如果想设置图像 可以传递drawable对象

时间: 2024-09-14 09:51:28

android-在listview中使用自己的图像的相关文章

微博-android,Listview中item点击变色冲突

问题描述 android,Listview中item点击变色冲突 我想要像微博一样,当点击评论.转发.赞3个按钮的时候,只有按钮变色. 点击其他地方时,整个item都变色. 然后我为最外层的布局和"评论.点赞.转发"3个按钮的布局都设置了selector,但结果是无论点击item的哪个地方,都是整个布局都变色.怎么修改都不行,不知是哪里出了问题 <selector xmlns:android="http://schemas.android.com/apk/res/and

uc浏览器-Android 在listview中实现视频播放和全屏

问题描述 Android 在listview中实现视频播放和全屏 比如 新的UC浏览器中的视频 网易新闻的视听 效果,这是我能拿出的最大的悬赏 请大神赐教 解决方案 http://download.csdn.net/detail/u012440207/7978157 你可以再做一个activity,传值,在新的activity播放http://jingyan.baidu.com/article/86fae346c8b0013c49121a2a.html 解决方案二: 一般listview展示的都

button点击事件-Android开发listView中的Button点击事件被拦截

问题描述 Android开发listView中的Button点击事件被拦截 根据http://blog.csdn.net/boylinux/article/details/8860443 这位大神的帖子,我的代码如下,现在的问题是Listview中的Button和imageview和textview控件点击之后不会响应,而在滑动一下Listview后,之前的点击事件才会响应,导致这个问题的原因不明,但是如果不用HashMap这个MAP的话,就不会有这个问题,请问大神们这是为什么呢?代码如下: p

ist iew-跪求:Android在listview中item没有type,如何控制展示不同类型的图片

问题描述 跪求:Android在listview中item没有type,如何控制展示不同类型的图片 在一个界面中,一个接口有很多的图片,一张大图,下面4张小图,在接着两个大图,后面两张小图,就这个模式展示,想不到用什么方法. 解决方案 没理解你这是什么样的布局,想要展示成什么样. 解决方案二: 这个不是在布局文件里布局好的,然后在代码里设置好,最后填充进listview的吗? 如果回答对您有帮助,请采纳 解决方案三: 确实没有理解到你想要做成什么效果 解决方案四: 如果没理解错的话你可以用瀑布流

android的listview中的自定义adapter初次打开不显示缓存的网络图片

问题描述 android的listview中的自定义adapter初次打开不显示缓存的网络图片 求助,小弟最近在写用listview 的 adapter ,在 imageview 上显示网络图片,缓存下来的图片保存成 bitmap , 在 adapter 中的 getView 设置了 imageView_image.setImageBitmap(bitmap); 但不知为何每第一次打开列表图片等待很长总是不显示,但在 listview 上下滚动的时候显示出来了,求解 解决方案 你第一次打开的时候

【Android】ListView中getView的原理与解决多轮重复调用的方法

ListView中getView的工作原理: [1]ListView asks adapter "give me a view" (getView) for each item of the list.(通过getView来获取每个item) [2]A new View is returned and displayed(获取到后返回显示) 那么如果我们有大量的数据需要显示的时候,每个Item都去重复执行getView中的创建新的View的动作吗?这样做会耗费大量的资源去执行重复的事情

android代码优化----ListView中自定义adapter的封装

[正文] [引入] 我们一般编写listView的时候顺序是这样的: 需要展示的数据集List<T> 为这个数据集编写一个ListView 为这个ListView编写一个Adapter,一般继承自BaseAdapter 在BaseAdapter内部编写一个ViewHolder类,对应ListView里面的item控件,提高控件的查询效率 分析: List<T>:ListView --> Adapter extends BaseAdapter --> ViewHolder

Android解决ListView中使用EditText所遇到的一些冲突

   大家都知道在listView中使用editText,在输入过程中是有冲突的.今天稍微研究了一下这个问题,有一点点小小的心得和大家一起分享下.   首先建立一个最简单的demo,主界面就是一个ListView,其中list_item的布局代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com

android listview-android listView中按钮设为不可点

问题描述 android listView中按钮设为不可点 listVIew每一项有一个按钮,点击后应该就不能再点了,然而设置clickable(false)并没有起到作用 解决方案 listView每一项有一个按钮,每个按钮都是在item这个xml布局文件上的,你是通过Adapter数据适配器的方式为listView填充数据的,如果说你要将点中的item的按钮设成不可点击,你应该是通过在设置adapter的时候在getView()这个方法里设置按钮点击后不可用(最好是能够设置一个boolean

android listview中超链接不起作用

问题描述 android listview中超链接不起作用 今天看网上listview中实现超链接,自己做了下,超链接没反应,item点击事件也没反应,去掉listview时超链接正常,这是怎么回事?附上代码. @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub webViewItem webViewItem = n