首页 > 解决方案 > 使用 Arraylist 将图标添加到 Listview

问题描述

我已经成功创建了一个包含所有选项(文本)的列表视图。但是,我想在每个选项旁边添加独特的图标。我该如何使用我的删除代码来执行此操作?

这是我想要实现的目标:

在此处输入图像描述

这是我的代码:AccountSettingsActivity.java

//All Options in Account Settings
private  void setupSettingsList(){
    ListView listView = findViewById(R.id.lvAccountSettings);

    ArrayList<String> options = new ArrayList<>();
    options.add(getString((R.string.editProfile)));
    options.add(getString(R.string.notifications));
    options.add(getString(R.string.privacy_settings));
    options.add(getString(R.string.security));
    options.add(getString(R.string.ads));
    options.add(getString(R.string.help));
    options.add(getString(R.string.about));
    options.add(getString(R.string.logout));

    ArrayAdapter adapter = new ArrayAdapter(mContext, R.layout.listview_row_adjustment, options);
    listView.setAdapter((adapter));
}

listview_row_adjustmnet.xml(这只是更改列表视图中选项的文本颜色和大小)

<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listViewAdjustment"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:textSize="17sp"
    android:gravity="fill"
    android:textColor="@color/white"/>

标签: javaandroidxmllistview

解决方案


首先,您必须添加您的 listview_row_adjustmnet.xml。

<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView"
    android:layout_gravity="center_horizontal|top"/>
<TextView
    android:id="@+id/listViewAdjustment"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:textSize="17sp"
    android:gravity="fill"
    android:textColor="@color/white"/>

对于代码 AccountSettingActivity 类:

private  void setupSettingsList(){
ListView listView = findViewById(R.id.lvAccountSettings);

ArrayList<String> options = new ArrayList<>();


options.add(getString((R.string.editProfile)));
options.add(getString(R.string.notifications));
options.add(getString(R.string.privacy_settings));
options.add(getString(R.string.security));
options.add(getString(R.string.ads));
options.add(getString(R.string.help));
options.add(getString(R.string.about));
options.add(getString(R.string.logout));
ArrayList<ImageView> images = new ArrayList<>();
//Please add Customized addapter 
}

对于自定义适配器,您可以在此链接https://www.youtube.com/watch?v=_YF6ocdPaBg中找到帮助。

要在代码中设置 ImageView 请参阅此答案Using variable to change image in Java


推荐阅读