如何让自己的适配器ArrayList的位置 [英] how to get position of arraylist in own adapter
本文介绍了如何让自己的适配器ArrayList的位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要到ArrayList(项目)的位置设置到我自己的ListView适配器。
holder.txtViewTitle.setText(title.get(位置));
但我得到了错误。
请检查下面code。
我也得到了setImageResource的错误。
holder.imgViewLogo.setImageResource(图像[位置]);
感谢。
公共类LazyAdapter延伸BaseAdapter {私人activites语境;
私人的ArrayList<串GT;标题;
私有String []图像;
私人LayoutInflater吹气;
公共LazyAdapter(activites activites,字符串[] IMG,ArrayList的<串GT;项目){
超(); this.context = activites;
this.title =物品;
this.images = IMG;}@覆盖
公众诠释的getCount(){
// TODO自动生成方法存根
返回title.size();
}@覆盖
公共对象的getItem(INT位置){
// TODO自动生成方法存根
返回null;
}@覆盖
众长getItemId(INT位置){
// TODO自动生成方法存根
返回0;
}公共静态类ViewHolder
{
ImageView的imgViewLogo;
TextView的txtViewTitle;}@覆盖
公共查看getView(INT位置,查看convertView,父母的ViewGroup){
// TODO自动生成方法存根 ViewHolder持有人;
如果(convertView == NULL)
{
持有人=新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(保持器);
}
其他
支架=(ViewHolder)convertView.getTag(); holder.imgViewLogo.setImageResource(图像[位置]);
holder.txtViewTitle.setText(title.get(位置));
返回convertView;
}}
解决方案
公共类LazyAdapter延伸BaseAdapter {私人activites语境;
私人的ArrayList<串GT;标题;
私有String []图像;
私人LayoutInflater吹气;
位图MYBITMAP;
公共LazyAdapter(activites activites,字符串[] IMG,ArrayList的<串GT;项目){
超(); this.context = activites;
this.title =物品;
this.images = IMG;}@覆盖
公众诠释的getCount(){
// TODO自动生成方法存根
返回title.size();
}@覆盖
公共对象的getItem(INT位置){
// TODO自动生成方法存根
返回null;
}@覆盖
众长getItemId(INT位置){
// TODO自动生成方法存根
返回0;
}公共静态类ViewHolder
{
ImageView的imgViewLogo;
TextView的txtViewTitle;}@覆盖
公共查看getView(INT位置,查看convertView,父母的ViewGroup){
// TODO自动生成方法存根
尝试{
URL =新的URL(图像[位置]);
连接=(HttpURLConnection类)网址
.openConnection(); connection.setDoInput(真);
connection.connect();
connection.setReadTimeout(120000);
输入的InputStream = connection.getInputStream();
MYBITMAP = BitmapFactory.de codeStream(输入); }赶上(IOException异常五){
e.printStackTrace();
返回null;
}
ViewHolder持有人;
如果(convertView == NULL)
{
持有人=新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(保持器);
}
其他
支架=(ViewHolder)convertView.getTag(); holder.imgViewLogo.setImageBitmap(MYBITMAP);
holder.txtViewTitle.setText(title.get(位置));
返回convertView;
}}
I want to set the position of the arraylist (items) into my own adapter of listview.
holder.txtViewTitle.setText(title.get(position));
But I got the error. Please check the below code.
also I got the error of the setImageResource.
holder.imgViewLogo.setImageResource(images[position]);
Thanks.
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;
}
}
解决方案
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;
}
}
这篇关于如何让自己的适配器ArrayList的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文