ListView是用来显示大量数据的,ListView里面的数据无法直接显示
1.因先建立list<E> lists 建立一个数组,把需要的数据存储在数组中。
2.通过adapter = new Myadapter(context,lists) 通过自定义Myadapter的构造方法,把数据存储在适配器中。
3.listView lv.setAdpater(adapter) 通关过listView的setAdapter方法配置一个适配器
public class MyAdapter extends BaseAdapter{
private List<PhoneInfo> lists;
private Context context;
private LinearLayout layout;
public MyAdapter(List<PhoneInfo> lists,Context context) {
this.lists = lists;
this.context = context;
}
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {
return lists.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.call, null);
holder = new ViewHolder();
holder.nametv = (TextView) convertView.findViewById(R.id.name);
holder.numbertv = (TextView) convertView.findViewById(R.id.number);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.nametv.setText(lists.get(position).getName());
holder.numbertv.setText(lists.get(position).getNumber());
return convertView;
}
private static class ViewHolder{
TextView nametv;
TextView numbertv;
}
}
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<span style="font-family: Arial, Helvetica, sans-serif;">获取手机里的联系人号码,姓名存放在lists列表中</span>
<span style="font-family: Arial, Helvetica, sans-serif;">public class GetNumber {</span>
public static List<PhoneInfo> lists = new ArrayList<PhoneInfo>();
public static String getNumber(Context context){
Cursor cursor = context.getContentResolver().query(Phone.CONTENT_URI, null, null, null, null);
String phoneNumber;
String phoneName;
while (cursor.moveToNext()) {
phoneNumber = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));
phoneName = cursor.getString(cursor.getColumnIndex(Phone.DISPLAY_NAME));
PhoneInfo phoneInfo = new PhoneInfo(phoneName, phoneNumber);
lists.add(phoneInfo);
System.out.println(phoneName+phoneNumber);
}
return null;
}
}