首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有动态加载图片的Android列表活动在android中的web表单

具有动态加载图片的Android列表活动在android中的web表单
EN

Stack Overflow用户
提问于 2010-11-18 20:23:33
回答 1查看 3.6K关注 0票数 0

我对我的项目进行了描述

在我的项目中,在第一部分,我已经解析了视频类别和图像链接的xml数据从我的网络服务。我已经解析了这些数据,并在我的主要activity.The的ArrayList中接收的数据第一个ArrayList是视频类别的列表和第二个ArrayList是视频图像url的列表,我必须显示图像url的ArrayList作为ImageViewListView中,我不知道,请给我一些解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-18 22:55:30

为了处理ListView中显示为TextView的字符串数组以外的其他东西,您需要编写自己的自定义适配器(以便安卓知道如何显示这些项)

下面是一个示例:

您的活动:

代码语言:javascript
运行
复制
public class MyActivity extends Activity{
    private ArrayList<URL> MY_DATA;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Sets the View of the Activity
        setContentView(R.layout.my_activity);
        ListView myList = (ListView) findViewById(R.id.myList);
        MyAdapter adapter = new MyAdapter(this, MY_DATA);
        listView.setAdapter(adapter);
}

您的活动布局(此处为my_activity.xml):

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myList"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>

和您的自定义适配器:

代码语言:javascript
运行
复制
public class MyAdapter extends BaseAdapter{
    private LayoutInflater inflater;
    private ArrayList<URL> data;

    public EventAdapter(Context context, ArrayList<URL> data){
    // Caches the LayoutInflater for quicker use
    this.inflater = LayoutInflater.from(context);
    // Sets the events data
    this.data= data;
    }

    public int getCount() {
        return this.data.size();
    }

    public URL getItem(int position) throws IndexOutOfBoundsException{
        return this.data.get(position);
    }

    public long getItemId(int position) throws IndexOutOfBoundsException{
        if(position < getCount() && position >= 0 ){
            return position;
        }
    }

    public int getViewTypeCount(){
        return 1;
    }

    public View getView(int position, View convertView, ViewGroup parent){
        URL myUrl = getItem(position);
        ViewHolder holder = new ViewHolder(); // Use a ViewHolder to save your ImageView, in order not to have to do an expensive findViewById for each iteration

        // DO WHAT YOU WANT WITH YOUR URL (Start a new activity to download image?)

        if(convertView == null){ // If the View is not cached
        // Inflates the Common View from XML file
        convertView = this.inflater.inflate(R.id.my_row_layout, null);
            holder.myImageView = (ImageView)findViewById(R.id.myRowImageView);
            convertView.setTag(holder);
        }else{
            holder = (ViewHolder) convertView.getTag();
        }

        holder.myImageView.setImageBitmap(MY_BITMAP_I_JUST_DOWNLOADED);

        return convertView;
    }

    static class ViewHolder{
    ImageView myImageView;
    }
}

最后是行的布局(这里是my_row_layout.xml):

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myRowImageView"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4214683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档