holder.componprice = convertView.findViewById(R.id.All_Compon_list_item_componprice);
时间: 2024-04-01 13:32:18 浏览: 57
这行代码的作用是将 `convertView` 中的 `R.id.All_Compon_list_item_componprice` 对应的控件转换为 `TextView` 类型的对象,并将其存储在 `holder.componprice` 变量中。
`holder` 是一个自定义的 `Holder` 类型的对象,用于存储 `convertView` 中的控件引用。`holder.componprice` 是一个 `TextView` 类型的变量,用于引用每个 ListView 或 GridView item 中显示商品价格的控件。`convertView.findViewById()` 方法返回的是一个 `View` 对象,需要将其强制转换为 `TextView` 对象才能存储在 `holder.componprice` 变量中,以便稍后使用。
相关问题
public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null){ holder = new ViewHolder(); convertView = LayoutInflater.from(mcontext).inflate(R.layout.sq_bookgrid,null); holder.booklist_bookname = convertView.findViewById(R.id.bookname); holder.booklist_author = convertView.findViewById(R.id.author); holder.booklist_inventory = convertView.findViewById(R.id.price); convertView.setTag(holder); }else { holder = (ViewHolder)convertView.getTag(); } Book book = mBookList.get(position); holder.booklist_bookname.setText(book.getBookname()); holder.booklist_author.setText("主编/作者:" + book.getAuthor()); holder.booklist_inventory.setText("馆存:" + book.getinventory()+" 本"); return convertView;
这段代码是关于 Android 中 ListView 的 getView 方法的实现。在 ListView 中,getView 方法会在每个 item 显示时被调用,用于提供 item 的内容和显示方式。其中,convertView 是一个可重用的 View 对象,如果 convertView 不为 null,说明可以直接使用这个 View,否则需要通过 LayoutInflater.inflate 方法加载一个新的 View。 ViewHolder 是用来缓存 item 中的控件,避免重复 findViewById 的开销。最后,将 item 中的控件设置为对应的数据即可。
解释这段代码 private class Newadptor extends BaseAdapter{ @Override public int getCount() { return Tuijian.getNames().length; } @Override public Object getItem(int i) { return Tuijian.getNames()[i]; } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View cview, ViewGroup viewGroup) { if(cview==null){ cview=View.inflate(MainActivity.this,R.layout.tuijian_item_layout,null); holder =new ViewHolder(); holder.title=cview.findViewById(R.id.tuijian_title); holder.news=cview.findViewById(R.id.tuijian_text); holder.img=cview.findViewById(R.id.tuijian_img); cview.setTag(holder); }else{ holder=(ViewHolder) cview.getTag(); } holder.title.setText(Tuijian.getNames()[i]); holder.news.setText(Tuijian.getNews()[i]); holder.img.setBackgroundResource(Tuijian.getIcons()[i]); return cview; } } private class ViewHolder{ private TextView title; private TextView news; private ImageView img; }
这段代码是一个自定义的适配器(Newadptor)类,继承自BaseAdapter。适配器的作用是将数据源(Tuijian)中的数据显示在界面上。其中,Tuijian包含了三个数组:Names、News和Icons。Names是一个String类型的数组,存储了推荐内容的标题;News是一个String类型的数组,存储了推荐内容的描述;Icons是一个int类型的数组,存储了推荐内容的图片资源id。在适配器的getView方法中,首先判断当前View是否为空,如果是,则使用View.inflate方法将布局文件R.layout.tuijian_item_layout转换为View对象,并将ViewHolder对象与View关联;如果不为空,则从View的Tag中获取ViewHolder对象。接着,将Tuijian中对应位置的标题、描述和图片资源id分别设置到ViewHolder对象的title、news和img属性中,并返回该View。ViewHolder是一个静态内部类,用于保存item布局中的控件,避免重复调用findViewById方法。
阅读全文