如题,自己最近在做一个项目,但是自己才疏学浅,对于很多安卓的知识不够了解。所以在为TextView中的字符串添加中间的横线的时候出现了问题。因为自己只会LIstView,所以就照葫芦画瓢谢了一个。效果能实现大半,但是横线不能添加上。所以无奈求助各位大神,后来别人告诉我RecycleView这个技术更加先进,所以本屌又偷着看了这个技术。
这个最主要的就是Adapter的设置。
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, null); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); view.setLayoutParams(lp); return new BookViewHolder(view); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) { BookViewHolder holder1 = (BookViewHolder) holder; ((BookViewHolder) holder).position = i; Book book = list.get(i); ((BookViewHolder) holder).image.setImageResource(book.getImageId()); ((BookViewHolder) holder).name.setText(book.getBookname()); ((BookViewHolder) holder).desc.setText(book.getDescribe()); ((BookViewHolder) holder).cuxiao.setText(String.valueOf(book.getNewprice())); ((BookViewHolder) holder).yuanjia.setText(String.valueOf(book.getOldprice())); } @Override public int getItemCount() { return list.size(); } class BookViewHolder extends RecyclerView.ViewHolder { public View rootView; public TextView name; public TextView desc; public ImageView image; public TextView cuxiao; public TextView yuanjia; public int position; public BookViewHolder(View itemView) { super(itemView); image = (ImageView) itemView.findViewById(R.id.header); name = (TextView) itemView.findViewById(R.id.bookname); desc = (TextView) itemView.findViewById(R.id.introduce); cuxiao = (TextView) itemView.findViewById(R.id.cuxiao); yuanjia = (TextView) itemView.findViewById(R.id.old); yuanjia.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG); rootView = itemView.findViewById(R.id.recycle_view); } }
这3个方法都要有。
第一个是创建View的时候,为View设置自己的格式,以及风格。第二个是进行数据的绑定,将你需要用到的数据一一对应的填充到你将要使用的item当中。
第三个是为每一个Item都建立属于自己的View。在viewholder里面托管你所要的布局的item。进行一一的获取。
我很菜的,希望大家别喷我