Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建阵列适配器_Java_Android - Fatal编程技术网

Java 创建阵列适配器

Java 创建阵列适配器,java,android,Java,Android,我需要为包含图像和两个字段的ListView做ArrayAdapter,但我不知道如何做。 我可以试试做这个 ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list, new ArrayList<ArrayList<string>>{ tmp, wallResults.get("text"),

我需要为包含图像和两个字段的ListView做ArrayAdapter,但我不知道如何做。 我可以试试做这个

ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list, new ArrayList<ArrayList<string>>{ 
         tmp,         
                 wallResults.get("text"),        
                 }, new int[]{    
                 R.id.text1,      
                 R.id.text2});
ArrayAdapter adapter=new ArrayAdapter(这个,R.layout.list,new ArrayList{
tmp,
wallResults.get(“文本”),
},新int[]{
R.id.text1,
R.id.text2});
但这不是工作

这是list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:orientation="vertical"
  android:layout_height="wrap_content">

   <LinearLayout
  android:layout_width="265dip"
  android:orientation="vertical"
  android:layout_height="wrap_content">

  <TextView android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:id="@+id/text1"
  android:textSize="25dip"
  android:text="This is text1"/>

  <TextView android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:id="@+id/text2"
  android:text="This is text2"/>

  <ImageView android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:id="@+id/text2"
  android:text="This is text2"/>


  </LinearLayout>


</LinearLayout>

像这样使用自定义适配器

public class TestListAdapter extends ArrayAdapter<Uri> {


    private LayoutInflater mInflater = null;
    private HttpImageManager mHttpImageManager = null;
    private ArrayList < SeedObject > seedData = null;


    public TestListAdapter(Activity context, ArrayList<SeedObject> seedList, List<Uri> uris) {
        super(context, 0, uris);

        mInflater = context.getLayoutInflater();
        this.seedData = seedList;

        mHttpImageManager = ((TestApplication) context.getApplication()).getHttpImageManager();
    }


    public View getView(int position, View convertView, ViewGroup parent) {

        final ViewHolder holder;

        if (convertView == null || convertView.getTag() == null) {
            holder = new ViewHolder();
            convertView = mInflater.inflate(R.layout.custom_row, null);

            holder.url = (TextView) convertView.findViewById(R.id.textSeed_seedsList);
            holder.city = (TextView) convertView.findViewById(R.id.textView_seed_city);
            holder.image = (ImageView) convertView.findViewById(R.id.imageSeed_seedsList);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        final Uri uri = getItem(position);
        ImageView imageView = holder.image;
        if (uri != null) {
            Bitmap bitmap = mHttpImageManager.loadImage(new HttpImageManager.LoadRequest(uri, imageView));
            if (bitmap != null) {
                // image download now compress and set on Image view
                bitmap = Bitmap.createScaledBitmap(bitmap, 60, 60, true);
                imageView.setImageBitmap(bitmap);
            } else if (position % 2 == 0) {
                imageView.setImageResource(R.drawable.greenseed_new);
            } else {
                imageView.setImageResource(R.drawable.grayseed_new);
            }



        }



        //set the seed name
        holder.url.setText(seedData.get(position).getTitle());
        String distance = seedData.get(position).getDistance();
        if (distance == null) {
            holder.city.setText(seedData.get(position).getAddress());
        }




        return convertView;
    }

    private static class ViewHolder {
        ImageView image;
        TextView city;
        TextView url;
    }
}
公共类TestListAdapter扩展了ArrayAdapter{
私有LayoutInflater mInflater=null;
私有HttpImageManager mHttpImageManager=null;
私有ArrayListseedData=null;
公共TestListAdapter(活动上下文、ArrayList种子列表、列表URI){
超级(上下文,0,URI);
mInflater=context.getLayoutFlater();
this.seedData=种子列表;
mHttpImageManager=((TestApplication)context.getApplication()).getHttpImageManager();
}
公共视图getView(int位置、视图转换视图、视图组父视图){
最终持票人;
if(convertView==null | | convertView.getTag()==null){
holder=新的ViewHolder();
convertView=mInflater.充气(R.layout.custom_行,空);
holder.url=(TextView)convertView.findViewById(R.id.textSeed\u seedsList);
holder.city=(TextView)convertView.findViewById(R.id.TextView\u seed\u city);
holder.image=(ImageView)convertView.findViewById(R.id.imageSeed\u seedsList);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
最终Uri=getItem(位置);
ImageView ImageView=holder.image;
if(uri!=null){
位图Bitmap=mHttpImageManager.loadImage(新的HttpImageManager.LoadRequest(uri,imageView));
if(位图!=null){
//图像下载现在压缩并在图像视图上设置
位图=位图。createScaledBitmap(位图,60,60,真);
设置图像位图(位图);
}否则如果(位置%2==0){
设置图像资源(R.drawable.greenseed_new);
}否则{
setImageResource(R.drawable.grayseed_new);
}
}
//设置种子名称
holder.url.setText(seedData.get(position.getTitle());
字符串距离=seedData.get(位置).getDistance();
如果(距离==null){
holder.city.setText(seedData.get(position.getAddress());
}
返回视图;
}
私有静态类视图持有者{
图像视图图像;
文本视图城市;
文本视图url;
}
}

阵列适配器仅允许使用ArrayAdapter的一个字段 您可以使用simpledapter类insted

ArrayList<String> listText1 = new ArrayList<String>();
    listText1.add("A");
    listText1.add("B");
    listText1.add("C");
ArrayList<String> listText2 = new ArrayList<String>();
    listText2.add("X");
    listText2.add("Y");
    listText2.add("Z");

List<Map<String, String>> alist = new ArrayList<Map<String, String>>();
Map<String, String> map;
int count = items.size();
for(int i = 0; i < count; i++) {
    map = new HashMap<String, String>();
    map.put("txt1", listText1.get(i));
    map.put("txt2", listText2.get(i));
    alist .add(map);
}

SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.list, new String[] { "txt1", "txt2" }, new int[]{R.id.text1, R.id.text2});
ArrayList listText1=新建ArrayList();
列表文本1.添加(“A”);
列表文本1.添加(“B”);
列表文本1.添加(“C”);
ArrayList listText2=新的ArrayList();
列表文本2.添加(“X”);
列表文本2.添加(“Y”);
列表文本2.添加(“Z”);
列表列表=新的ArrayList();
地图;
int count=items.size();
for(int i=0;i