使用自定义的Adapter来设置ListView的内容

这里主要是学习的Adapter的机制

MainActivity.java

复制代码
 1 package com.kale.listview;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.widget.ListView;
 6 
 7 
 8 public class MainActivity extends Activity {
 9     
10     ListView myLv;
11     
12     @Override
13     protected void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.activity_main);
16         
17         MyAdapter adapter = new MyAdapter(this);
18         
19         myLv = (ListView)findViewById(R.id.red_listView_id);
20         myLv.setAdapter(adapter);
21         
22     }
23 }
复制代码

 

MyAdapter.java

复制代码
package com.kale.listview;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class MyAdapter extends BaseAdapter{

    Context context;
    
    public MyAdapter(Context context) {
        // TODO 自动生成的构造函数存根
        this.context = context;
    }
    
    //返回Adapter包含多少个item
    @Override
    public int getCount() {
        // TODO 自动生成的方法存根
        //设置总共有多少个元素
        return 10;
    }

    //通过位置来得到对象
    @Override
    public Object getItem(int position) {
        // TODO 自动生成的方法存根
        return null;
    }

    //根据位置来得到相应item的Id
    @Override
    public long getItemId(int position) {
        // 设置返回值为列表项的ID
        return position;
    }
    
    //listView中每个item的view,就是用getView来产生的view。显示一个item,调用一个getView
    @Override
    public View getView(int position, View contertView, ViewGroup parent) {
        
        LinearLayout view = new LinearLayout(context);
        view.setOrientation(0);
        ImageView imageView = new ImageView(context);
        imageView.setImageResource(R.drawable.kale);
        view.addView(imageView);

        return view;
    }

    
}
复制代码
posted @   developer_Kale  阅读(402)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
网站流量统计工具
点击右上角即可分享
微信分享提示