整个编码步骤如下:
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);
}
}