android定制listview和arraylist

gz5pxeao  于 2021-07-13  发布在  Java
关注(0)|答案(3)|浏览(372)

目前,我有一个默认的列表视图,显示 Arraylist javaclassname。我希望在listview中实现一个imageview,因此我阅读并尝试了以下两个链接中的方法:
使用arrayadapter的带有图像和文本的android自定义listview
带有图像和文本的android自定义listview–示例
我无法从他们的 String[] 以及 Integer[] 在各自的 CustomList 我自己的课 ArrayList 因为图像和名称存储在 Arraylist . 我的 ArrayList 包括其他数据以及,但我只需要得到数据显示在定制 ListView .
编辑/加载项:

private final Activity context;
private final String[] itemname;
private final Integer[] imgid;

public CustomListAdapter(Activity context, String[] itemname, Integer[] imgid) {
    super(context, R.layout.mylist, itemname);
    // TODO Auto-generated constructor stub

    this.context=context;
    this.itemname=itemname;
    this.imgid=imgid;
}

public View getView(int position,View view,ViewGroup parent) {
    LayoutInflater inflater=context.getLayoutInflater();
    View rowView=inflater.inflate(R.layout.mylist, null,true);

    TextView txtTitle = (TextView) rowView.findViewById(R.id.item);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
    TextView extratxt = (TextView) rowView.findViewById(R.id.textView1);

    txtTitle.setText(itemname[position]);
    imageView.setImageResource(imgid[position]);
    extratxt.setText("Description "+itemname[position]);
    return rowView;

};

我密切关注创建customadapter所提供的一个链接。这就是我的主要活动

final ArrayList<JavaClassName> arrayListName = new ArrayList<JavaClassName>();
arrayListName.add(new JavaClassName(R.drawable.icon1, "name", "info", "info", "info"));
arrayListName.add(new JavaClassName(R.drawable.icon2, "name", "info", "info", "info"));

final ArrayList<String> itemName = new ArrayList<String>();
    for(int i=0; i<arrayListName.size(); i++){
        String name = arrayListName.get(i).getName().toString();
        itemName.add(name);
    };

CustomAdapter adapter = new CustomAdapter>(this, android.R.layout.simple_list_item_1, itemName);
    listView.setAdapter(adapter);

如何将customadapter类中的字符串[]和整数[]放入customadapter=new customadapter>(this,android.r.layout.simple_list_item_1,itemname);?

7fyelxc5

7fyelxc51#

https://www.youtube.com/watch?v=cyk_ht8z6ia
据我所知,我建议您应该创建自己的适配器。我不确定arraylist,因为大多数时候我只使用数组。

vqlkdk9b

vqlkdk9b2#

转换 ArrayList to Array ```
List names = new ArrayList();
// add stuff here
String[] namesArr = names.toArray(new String[names.size()]);

希望这有帮助!!!
wz1wpwve

wz1wpwve3#

我想您的自定义适配器类继承自arrayadapter。根据文档,您提供给构造函数的资源(第二个参数, R.layout.simple_list_item_1 在您的情况下)应该是包含 TextView -

因为你有一个更复杂的布局不仅仅是一个 TextView ,你应该延长 BaseAdapter 而不是上课。那么,
创建自己的arraylist以管理数据 ArrayList<String> 以及 ArrayList<Integer> 在你的情况下)。
提供添加、删除和其他类似的方法来管理列表。
覆盖 getView 方法膨胀您的自定义布局,以设置文本和图像根据您的要求。

相关问题