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;
}