Android 是否将带有自定义适配器的字符串数组用于listview?
所以我有一个字符串数组。我试图将每个单独的项从该字符串数组传递到自定义适配器。我很难弄清楚如何使用在自定义适配器中传递的字符串 我经过的字符串[]Android 是否将带有自定义适配器的字符串数组用于listview?,android,listview,custom-adapter,Android,Listview,Custom Adapter,所以我有一个字符串数组。我试图将每个单独的项从该字符串数组传递到自定义适配器。我很难弄清楚如何使用在自定义适配器中传递的字符串 我经过的字符串[] String favorites = String.valueOf(FavList.get(0).get("favorites_list")); String[] separated = favorites.split(","); for (String s: separated)
String favorites = String.valueOf(FavList.get(0).get("favorites_list"));
String[] separated = favorites.split(",");
for (String s: separated) {
//Do your stuff here
FavoritesAdapter.add(s);
}
适配器类
public class FavoritesAdapter extends ArrayAdapter<favoriteList> {
private final Context mContext;
private List<favoriteList> favlist;
private TextView favorites;
private TextView favDetail;
public FavoritesAdapter(Context context, ArrayList<favoriteList> objects) {
super(context, R.layout.favorites_listview_single, objects);
this.mContext = context;
this.favlist = objects;
}
public View getView(final int position, View convertView, final ViewGroup parent) {
if (convertView == null) {
LayoutInflater mLayoutInflater = LayoutInflater.from(mContext);
convertView = mLayoutInflater.inflate(R.layout.favorites_listview_single, null);
}
// Here is where i cant figure out how to get the string that I passed.
return convertView;
}
公共类FavoritesAdapter扩展了ArrayAdapter{
私有最终上下文mContext;
私人名单;
私人文本视图收藏夹;
私有文本视图favDetail;
公共收藏夹适配器(上下文、ArrayList对象){
super(上下文、R.layout.favorites\u列表视图\u单个对象);
this.mContext=上下文;
this.favlist=对象;
}
公共视图getView(最终整型位置、视图转换视图、最终视图组父视图){
if(convertView==null){
LayoutInflater mLayoutInflater=LayoutInflater.from(mContext);
convertView=mLayoutInflater.FLATE(R.layout.favorites\u listview\u single,null);
}
//在这里,我不知道如何获得我传递的字符串。
返回视图;
}
}我不知道您是如何编写“FavoritesAdapter”类的,但使用静态方法“add”并向其传递字符串以构建列表感觉非常错误
在这个链接中,您可以了解如何为ListView创建自定义数组适配器。看起来您只是传入字符串,所以我不知道为什么要使用
ArrayAdapter
如果将适配器类更改为:
public class FavoritesAdapter extends ArrayAdapter<String> {
private final Context mContext;
private ArrayList<String> favlist;
private TextView favorites;
private TextView favDetail;
public FavoritesAdapter(Context context, ArrayList<String> objects) {
super(context, R.layout.favorites_listview_single, objects);
this.mContext = context;
this.favlist = objects;
}
public View getView(final int position, View convertView, final ViewGroup parent) {
if (convertView == null) {
LayoutInflater mLayoutInflater = LayoutInflater.from(mContext);
convertView = mLayoutInflater.inflate(R.layout.favorites_listview_single, null);
}
String favoriteItem = favlist.get(position) //get the string you passed
return convertView;
}
//...more code
}
公共类FavoritesAdapter扩展了ArrayAdapter{
私有最终上下文mContext;
私人ArrayList favlist;
私人文本视图收藏夹;
私有文本视图favDetail;
公共收藏夹适配器(上下文、ArrayList对象){
super(上下文、R.layout.favorites\u列表视图\u单个对象);
this.mContext=上下文;
this.favlist=对象;
}
公共视图getView(最终整型位置、视图转换视图、最终视图组父视图){
if(convertView==null){
LayoutInflater mLayoutInflater=LayoutInflater.from(mContext);
convertView=mLayoutInflater.FLATE(R.layout.favorites\u listview\u single,null);
}
String favoriteItem=favlist.get(position)//获取传递的字符串
返回视图;
}
//…更多代码
}
然后在传递字符串时,按如下方式传递:
String favorites = String.valueOf(FavList.get(0).get("favorites_list"));
ArrayList<String> favlist = (ArrayList<String>)Arrays.asList(favorites.split(","));
FavoritesAdapter adapter = new FavoritesAdapter(getApplicationContext(), favlist);
listView.setAdapter(adapter); //where listView is the view you declared previously
stringfavorites=String.valueOf(FavList.get(0.get)(“收藏夹列表”);
ArrayList favlist=(ArrayList)Arrays.asList(favorites.split(“,”);
FavoritesAdapter adapter=新的FavoritesAdapter(getApplicationContext(),favlist);
setAdapter(适配器)//其中listView是您之前声明的视图
为数据创建ArrayList,然后将其传递给适配器。如果看不到适配器代码,很难知道抱歉-忘记添加,只是添加了。您缺少类似favoriteIte.findViewById(R.id.someTextView)。setTextView(favoriteItem)的内容;op没有指定他想对字符串做什么,所以我只演示了如何传递它并将其存储在一个变量中谢谢你!这对我来说很有效,但是我需要添加的唯一一件事就是声明“新”arrayList。请参见下面的内容:ArrayList favlist=新的ArrayList(Arrays.asList(favorites.split(“,”));