我对我的项目进行了描述
在我的项目中,在第一部分,我已经解析了视频类别和图像链接的xml数据从我的网络服务。我已经解析了这些数据,并在我的主要activity.The的ArrayList
中接收的数据第一个ArrayList
是视频类别的列表和第二个ArrayList
是视频图像url的列表,我必须显示图像url的ArrayList
作为ImageView
在ListView
中,我不知道,请给我一些解决方案。
发布于 2010-11-18 22:55:30
为了处理ListView中显示为TextView的字符串数组以外的其他东西,您需要编写自己的自定义适配器(以便安卓知道如何显示这些项)
下面是一个示例:
您的活动:
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):
<?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"
/>
和您的自定义适配器:
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):
<?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"
/>
https://stackoverflow.com/questions/4214683
复制相似问题