适配器
什么是适配器:把数据转换为适配器控件所能使用的
ArrayAdapter(只能显示单一的TextView)
第一个参数填上下文对象
第二个参数填每个item的布局文件(注意ArrayAdapter的item布局文件只能是以TextView作为根节点的 且只能匹配一个TextView)
第三个参数填item中的内容 可以是数组或者集合
ArrayAdapter<String> adapter=new ArrayAdapter<>(content,resouce,data);
BaseAdapter(自定义适配器,重点)
public View getView(int position, View convertView, ViewGroup parent) {//如果view未被实例化过,缓存池中没有对应的缓存
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item,null);
}
/**
* 找到item布局文件中对应的控件
*/
ImageView imageView = (ImageView) convertView.findViewById(R.id.iv_image);
TextView titleTextView = (TextView) convertView.findViewById(R.id.tv_title);
TextView contentTextView = (TextView) convertView.findViewById(R.id.tv_content);
//获取相应索引的ItemBean对象
ItemBean bean = mList.get(position);
/**
* 设置控件的对应属性值
*/
imageView.setImageResource(bean.itemImageResId);
titleTextView.setText(bean.itemTitle);
contentTextView.setText(bean.itemContent);
return convertView;
}
适配器控件
ListView (列表视图)
先附上一段简单的代码:
package com.example.lyj.myapplication;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class ListActivityDemo extends ListActivity {
private String[] presidents={"北京","深圳","济南","广州","海南","香港","澳门"};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
ListView listview=getListView();
//添加一个TextView作为表头
TextView tvHeader=new TextView(ListActivityDemo.this);
tvHeader.setText("城市列表头");
listview.addHeaderView(tvHeader);
//添加一个TextView作为表尾
TextView tvFooter=new TextView(ListActivityDemo.this);
tvFooter.setText("城市列表尾");
listview.addFooterView(tvFooter);
listview.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,presidents));
}
@Override
protected void onListItemClick(ListView parent, View view, int position, long id) {
Toast.makeText(this, "You have selected "+presidents[position], Toast.LENGTH_SHORT).show();
}
}
结果如图: