Android 如何在listview中添加数组项?

Android 如何在listview中添加数组项?,android,Android,我有一个应用程序,其中有String[],我必须从中找出String[]第一个字符中的每个元素,并将其设置到另一个数组中,然后设置到listview。我该怎么做 代码:- public static final String[] titles = new String[]{"Strawberry", "Banana", "Orange", "Mixed"}; 从上面我找到了位置0处的字符 for (int i=0;i<titles.length;i++){

我有一个应用程序,其中有
String[]
,我必须从中找出
String[]
第一个字符中的每个元素,并将其设置到另一个数组中,然后设置到
listview
。我该怎么做

代码:-

 public static final String[] titles = new String[]{"Strawberry",
        "Banana", "Orange", "Mixed"};
从上面我找到了位置0处的字符

   for (int i=0;i<titles.length;i++){
        String test = titles[i];
        Log.e(TAG,"Items****"+test);
        char firstChar = test.charAt(0);
        Log.e(TAG,"Char"+firstChar);

    }

可以使用具有所需属性的POJO类

 class TextModel{
    String text;
    TextDrawable drawable;
}
只需将其添加到
集合

ArrayList<TextModel> list=new ArrayList<>();
    for (int i=0;i<titles.length;i++){
        char firstChar = titles[i].charAt(0);
        TextModel textModel=new TextModel();
        textModel.text=test;
        textModel.drawable=TextDrawable.builder()
                .buildRound(firstChar, Color.GREEN);
        list.add(textModel);
    }
现在您可以使用
图像
设置适配器。

更新
要从名称中获取首字母,可以使用下面的方法。根据您的需要进行修改

public static String getInitials(String name) {
    try {
        String initials = "";
        String[] str = name.split(" ");
        for (int i = 0; i < str.length; i++) {
            initials += str[i].charAt(0);
            if (initials.length() == 3) {
                break;
            }
        }
        return initials.toUpperCase();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return name;
}
公共静态字符串getInitials(字符串名称){
试一试{
字符串首字母=”;
字符串[]str=name.split(“”);
对于(int i=0;i
您可以使用标题数组位置直接访问listview适配器中的图像数组值,只需在listview适配器中传递图像数组即可。请执行一些代码,以便使用
ArrayAdapter
BaseAdapter
。这方面有很多教程。看看。我需要知道如何在TextDrawable[]中设置“drawable”,然后我需要在listview适配器中设置TextDrawable[]对象,以便查看更新的答案。您可以直接将TextDrwable[]设置为ListView,默认实现为
ArrayAdapter
,您必须创建一个自定义适配器。此外,如果我有“sandeep”和“sandeep Kumar”,那么我必须找到sandeep是否只得到S,如果有两个名称,则得到“SK”。
TextDrawable[] images=new TextDrawable[titles.length];
    for (int i=0;i<titles.length;i++){
        char firstChar = titles[i].charAt(0);
        images[i]=TextDrawable.builder() .buildRound(firstChar, Color.GREEN);
    }
public static String getInitials(String name) {
    try {
        String initials = "";
        String[] str = name.split(" ");
        for (int i = 0; i < str.length; i++) {
            initials += str[i].charAt(0);
            if (initials.length() == 3) {
                break;
            }
        }
        return initials.toUpperCase();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return name;
}