我想将arraylist(items)的位置设置为我自己的listview适配器。
holder.txtViewTitle.setText(title.get(position));
但是我得到了错误。 请检查以下代码。
我也得到了setImageResource的错误。
holder.imgViewLogo.setImageResource(images[position]);
感谢。
public class LazyAdapter extends BaseAdapter{
private activites context;
private ArrayList<String> title;
private String[] images;
private LayoutInflater inflater;
public LazyAdapter(activites activites,String[] img ,ArrayList<String> items) {
super();
this.context = activites;
this.title = items;
this.images = img;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return title.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
public static class ViewHolder
{
ImageView imgViewLogo;
TextView txtViewTitle;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if(convertView==null)
{
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.activity_listitem, null);
holder.imgViewLogo = (ImageView) convertView.findViewById(R.id.activity_list_logo);
holder.txtViewTitle = (TextView) convertView.findViewById(R.id.activity_list_title);
convertView.setTag(holder);
}
else
holder=(ViewHolder)convertView.getTag();
holder.imgViewLogo.setImageResource(images[position]);
holder.txtViewTitle.setText(title.get(position));
return convertView;
}
}
答案 0 :(得分:0)
我认为这是问题所在:
private String[] images;
您应该声明:
private Integer[] images;
希望这会有帮助
答案 1 :(得分:0)
public class LazyAdapter extends BaseAdapter{
private activites context;
private ArrayList<String> title;
private String[] images;
private LayoutInflater inflater;
Bitmap myBitmap;
public LazyAdapter(activites activites,String[] img ,ArrayList<String> items) {
super();
this.context = activites;
this.title = items;
this.images = img;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return title.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
public static class ViewHolder
{
ImageView imgViewLogo;
TextView txtViewTitle;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
try {
url = new URL(images[position]);
connection = (HttpURLConnection) url
.openConnection();
connection.setDoInput(true);
connection.connect();
connection.setReadTimeout(120000);
InputStream input = connection.getInputStream();
myBitmap = BitmapFactory.decodeStream(input);
} catch (IOException e) {
e.printStackTrace();
return null;
}
ViewHolder holder;
if(convertView==null)
{
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.activity_listitem, null);
holder.imgViewLogo = (ImageView) convertView.findViewById(R.id.activity_list_logo);
holder.txtViewTitle = (TextView) convertView.findViewById(R.id.activity_list_title);
convertView.setTag(holder);
}
else
holder=(ViewHolder)convertView.getTag();
holder.imgViewLogo.setImageBitmap(myBitmap);
holder.txtViewTitle.setText(title.get(position));
return convertView;
}
}
答案 2 :(得分:0)
以下重叠方法中的小修正。试试看,让我知道
@Override
public int getCount() {
// TODO Auto-generated method stub
return title.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}