ListView的创建

1.我先创建了一个listview的包


screenshot.png

2.然后创建手动创建一个类(class),activity本身就是一个类,然后在创建的ListViewActivity里面实现相关联的layout的方法,首先是先创建一个activity_listview的layout,然后在 ListViewActivity里面实现一下方法


ListView的创建_第1张图片
screenshot.png

3.手动创建的class 要在AndroidManifest.xml里面实现他的存在比如这个我写的demo,他的listviewActivity是存在于listView包下的,所以他的实现的方法如下:


ListView的创建_第2张图片
2737EF2D-9D44-4D64-BA9D-6D92C0EEAF93.png

4.在创建的activity_listview的layout里面布局ListView控件

ListView的创建_第3张图片
screenshot.png

然后在activity_listview 实现这个ListView的对象

ListView的创建_第4张图片
screenshot.png

5.创建ListViewAdapter(适配器,相当于iOS里面的TableViewController),并创建layout_list_item.xml(自定义item的布局文件,相当于iOS里面的自定义cell)

//以下是ListViewAdapter适配器里面的代码

package com.example.swkj.listviewselftest.listView;

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

import com.bumptech.glide.Glide;
import com.example.swkj.listviewselftest.R;

/**
 * Created by swkj on 2017/9/19.
 */

public class ListViewAdapter extends BaseAdapter {

    private Context mContext;
    private LayoutInflater mLayoutInflater;

        ListViewAdapter(Context context){

        this.mContext = context;
        this.mLayoutInflater = LayoutInflater.from(context);

    }

    @Override
    public int getCount() {
        return 10;
    }

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

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

    static class ViewHolder{

        public ImageView imageView;
        public TextView mTv_1,mTv_2,mTv_3;

    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {

        ViewHolder viewHolder = null;

        if(view == null) {
            view = mLayoutInflater.inflate(R.layout.layout_list_item,null);

            viewHolder = new ViewHolder();

            viewHolder.imageView = view.findViewById(R.id.iv);
            viewHolder.mTv_1 = view.findViewById(R.id.tv_1);
            viewHolder.mTv_2 = view.findViewById(R.id.tv_2);
            viewHolder.mTv_3 = view.findViewById(R.id.tv_3);

            view.setTag(viewHolder);
        }else{

            viewHolder = (ViewHolder) view.getTag();
        }

        //下面是控件赋值过程

        viewHolder.mTv_1.setText("这是标题");
        viewHolder.mTv_2.setText("2017/10/1 9:30");
        viewHolder.mTv_3.setText("萨达姆被美国捉住,被处以绞刑");
        Glide.with(mContext).load("https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png").into(viewHolder.imageView);

        notifyDataSetChanged();
        return view;
    }
}

//附上layout_list_item.xml demo里面的布局

ListView的创建_第5张图片
screenshot.png

6.回到activity_listview,实现它的Adapter的相应方法

ListView的创建_第6张图片
screenshot.png

最后 如果要加载网络数据的话,比如ImageView控件加载的是网络图片,记得开网关
P.S:安卓开网关的方法
在AndroidManifest.xml里面写上

你可能感兴趣的:(ListView的创建)