1.我先创建了一个listview的包
2.然后创建手动创建一个类(class),activity本身就是一个类,然后在创建的ListViewActivity里面实现相关联的layout的方法,首先是先创建一个activity_listview的layout,然后在 ListViewActivity里面实现一下方法
3.手动创建的class 要在AndroidManifest.xml里面实现他的存在比如这个我写的demo,他的listviewActivity是存在于listView包下的,所以他的实现的方法如下:
4.在创建的activity_listview的layout里面布局ListView控件
然后在activity_listview 实现这个ListView的对象
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里面的布局
6.回到activity_listview,实现它的Adapter的相应方法
最后 如果要加载网络数据的话,比如ImageView控件加载的是网络图片,记得开网关
P.S:安卓开网关的方法
在AndroidManifest.xml里面写上
<uses-permission android:name="android.permission.INTERNET"/>