本文介绍了在ListView AndroidStudio上实现ViewHolder的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要帮助以将ViewHolder实现到ListView.
I need help to implements a ViewHolder to my ListView please.
...
ListAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, array_spinner);//Inserisco le possibilita
mylist = (ListView) findViewById(R.id.listView1);
mylist.setAdapter(adapter);
mylist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
...
有人可以帮我吗?
推荐答案
public class YourAdapter extends ArrayAdapter<String> {
Context context;
int layoutResourceId;
String data[] = null;
public YourAdapter(Context context, int layoutResourceId, String[] data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
holder.txtTitle = (TextView)row.findViewById(R.id.row_textview);
row.setTag(holder);
}
else
{
holder = (ViewHolder)row.getTag();
}
String title = data[position];
holder.txtTitle.setText(title);
return row;
}
static class ViewHolder
{
TextView txtTitle;
}
}
并在您的活动中执行此操作:
and In your activity do this:
YourAdapter adapter = new YourAdapter<>(this,R.layout.your_custom_layout, your_string_array);
mylist = (ListView) findViewById(R.id.listView1);
mylist.setAdapter(adapter);
这篇关于在ListView AndroidStudio上实现ViewHolder的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!