listview的使用及自定义baseAdapter

整个编码步骤如下:
1.首先编写一个main_activity.xml,在其中加入listview控件;
2.编写listview中子项要展示数据的布局文件item.xml;
3.编写MyTest类(这里为自己根据需求编写需要的类){

     无参和有参构造函数;
     getter和setter方法;
/**
 * Created by Administrator on 2017/3/23.
 */

public class MyTest{
    private String Title;
    private String Context;
    private int icon;

    public MyTest(){

    }

    public MyTest(String Title,String Context,int icon){
        this.Title=Title;
        this.Context=Context;
        this.icon=icon;
    }

    public String getTitle() {
        return Title;
    }

    public void setTitle(String title) {
        Title = title;
    }

    public String getContext() {
        return Context;
    }

    public void setContext(String context) {
        Context = context;
    }

    public int getIcon() {
        return icon;
    }

    public void setIcon(int icon) {
        this.icon = icon;
    }
}
};
4.编写MyBaseAdapter类
/**
 * Created by Administrator on 2017/3/23.
 */

public class MyAdapter extends BaseAdapter{
    private LinkedList<MyTest> mData;
    private Context mContext;

    public MyAdapter(LinkedList<MyTest> mData, Context mContext) {
        this.mData = mData;
        this.mContext = mContext;
    }
    @Override
    public int getCount() {
        return mData.size();
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

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

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        view = LayoutInflater.from(mContext).inflate(R.layout.item,viewGroup,false);//加载布局管理器,将xml布局转换为view对象
        ImageView img_icon = (ImageView) view.findViewById(R.id.pic);//利用view对象找到布局中的组件
        TextView txt_title = (TextView) view.findViewById(R.id.title);
        TextView txt_context = (TextView) view.findViewById(R.id.context);
        img_icon.setBackgroundResource(mData.get(i).getIcon());
        txt_title.setText(mData.get(i).getTitle());
        txt_context.setText(mData.get(i).getContext());
        return view;
    }
}
5.编写MainActivity.java
     ①加载要显示的数据;
     ②.调用ListView的setAdapter()方法,将构建好的适配器对象传递进去,这样ListView和数据之间关联就建立完成了。

public class MainActivity extends AppCompatActivity {
    private List<MyTest> mData = null;
    private MyAdapter mAdapter = null;
    private ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.listview);
        mData = new LinkedList<MyTest>();
        mData.add(new MyTest("我是标题1", "我是内容", R.mipmap.ic_launcher));
        mData.add(new MyTest("我是标题2", "我是内容", R.mipmap.ic_launcher));
        mData.add(new MyTest("我是标题3", "我是内容", R.mipmap.ic_launcher));
        mData.add(new MyTest("我是标题4", "我是内容", R.mipmap.ic_launcher));
        mData.add(new MyTest("我是标题5", "我是内容", R.mipmap.ic_launcher));
        mAdapter = new MyAdapter((LinkedList<MyTest>) mData,MainActivity.this);
        listView.setAdapter(mAdapter);
        }
}


运行结果:



猜你喜欢

转载自blog.csdn.net/Best_CXY/article/details/65449044
今日推荐