ListView与RecycleView的代码实现

一.RecycleView:

RecycleAdapter适配器

public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.AppViewHolder> {
    private ArrayList<App>apps;

    public RecycleAdapter(ArrayList<App> apps) {
        this.apps = apps;
    }

    class AppViewHolder extends RecyclerView.ViewHolder{
        private ImageView item_icon;
        private TextView item_name;
        public AppViewHolder(@NonNull View itemView) {
            super(itemView);
            item_icon=itemView.findViewById(R.id.item_icon);
            item_name=itemView.findViewById(R.id.item_name);
        }
    }

    @NonNull
    @Override
    public AppViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_item,viewGroup,false);

        return new AppViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull AppViewHolder viewHolder, int i) {
        App app=apps.get(i);
        viewHolder.item_name.setText(app.getName());
        viewHolder.item_icon.setImageResource(app.getIcon());


    }

    @Override
    public int getItemCount() {
        return apps.size();
    }
}


MainActivity

public class MainActivity extends AppCompatActivity {

    private ListView lv_apps;
    //private List<App> list;
private ArrayList<App>listl;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.revcycview_text);
        init();
        //创建Adapter
    //MyAdapter myAdapter=new MyAdapter(list,this);
        RecycleAdapter recycleAdapter=new RecycleAdapter(listl);//创建适配器
       RecyclerView recyclerView=findViewById(R.id.recyclerView);
       recyclerView.setAdapter(recycleAdapter);//设置适配器
       recyclerView.setLayoutManager(new LinearLayoutManager(this));//设置布局管理器
        //将Adapter绑定到ListView
   // lv_apps.setAdapter(myAdapter);
    }

    private void init(){
        lv_apps = (ListView) findViewById(R.id.lv_apps);
        //初始化数据
        listl = new ArrayList<App>();
        listl.add(new App("京东",R.drawable.jd));
        listl.add(new App("QQ",R.drawable.qq));
        listl.add(new App("QQ斗地主",R.drawable.dz));
        listl.add(new App("新浪微博",R.drawable.xl));
        listl.add(new App("天猫",R.drawable.tm));
        listl.add(new App("UC浏览器",R.drawable.uc));
        listl.add(new App("微信",R.drawable.wx));
    }
}

二.ListView:
ListView 的适配器



public class MyAdapter extends BaseAdapter {
    private List<App> list;
    private Context context;

    public MyAdapter(List<App> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view=View.inflate(context,R.layout.list_item,null);
        TextView item_naem=view.findViewById(R.id.item_name);
        ImageView item_icon=view.findViewById(R.id.item_icon);
        App app=list.get(position);
        item_naem.setText(app.getName());
        item_icon.setBackgroundResource(app.getIcon());
        return view;
    }
}

MainActivity

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.revcycview_text);
        init();
        //创建Adapter
    MyAdapter myAdapter=new MyAdapter(list,this);

        //将Adapter绑定到ListView
    lv_apps.setAdapter(myAdapter);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值