Android控件ListView用法(读取联系人示例代码)
Android控件ListView用法(读取联系人示例代码)
发布时间:2016-12-28 来源:查字典编辑
摘要:示例代码:这是一个读取联系人的代码:复制代码代码如下:packagecom.ui.domain;importjava.util.ArrayL...

示例代码:

这是一个读取联系人的代码:

复制代码 代码如下:

package com.ui.domain;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.database.Cursor;

import android.database.DataSetObserver;

import android.graphics.Color;

import android.os.Bundle;

import android.provider.ContactsContract;

import android.util.Log;

import android.view.Menu;

import android.view.View;

import android.view.ViewGroup;

import android.widget.EditText;

import android.widget.ListAdapter;

import android.widget.ListView;

public class CallPhone extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.call_phone);

//联系人列表

final List<String> dataList=new ArrayList<String>();

// 获得所有的联系人

Cursor cur = getContentResolver().query(

ContactsContract.Contacts.CONTENT_URI,

null,

null,

null,

ContactsContract.Contacts.DISPLAY_NAME

+ " COLLATE LOCALIZED ASC");

while (cur.moveToNext()) {

int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);

int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);

String phoneNumber=cur.getString(1);

String disPlayName = cur.getString(displayNameColumn);

dataList.add(disPlayName+":"+phoneNumber);

Log.i("联系人名称:", disPlayName);

}

cur.close();//关闭游标

ListView listView=(ListView)findViewById(R.id.listView1);

listView.setAdapter(new ListAdapter() {

@Override

public void unregisterDataSetObserver(DataSetObserver paramDataSetObserver) {

// TODO Auto-generated method stub

}

@Override

public void registerDataSetObserver(DataSetObserver paramDataSetObserver) {

// TODO Auto-generated method stub

}

@Override

public boolean isEmpty() {

// TODO Auto-generated method stub

return false;

}

@Override

public boolean hasStableIds() {

// TODO Auto-generated method stub

return false;

}

@Override

public int getViewTypeCount() {

// TODO Auto-generated method stub

return dataList.size();

}

@Override

public View getView(int paramInt, View paramView, ViewGroup paramViewGroup) {

// TODO Auto-generated method stub

EditText text=new EditText(CallPhone.this);

text.setBackgroundColor(Color.WHITE);

text.setText(dataList.get(paramInt));

return text;

}

@Override

public int getItemViewType(int paramInt) {

// TODO Auto-generated method stub

return 0;

}

@Override

public long getItemId(int paramInt) {

// TODO Auto-generated method stub

return 0;

}

@Override

public Object getItem(int paramInt) {

// TODO Auto-generated method stub

return dataList.get(paramInt);

}

@Override

public int getCount() {

// TODO Auto-generated method stub

return dataList.size();

}

@Override

public boolean isEnabled(int paramInt) {

// TODO Auto-generated method stub

return false;

}

@Override

public boolean areAllItemsEnabled() {

// TODO Auto-generated method stub

return false;

}

});

}

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// TODO Auto-generated method stub

getMenuInflater().inflate(R.menu.call_phone, menu);

return true;

}

}

这个listView有个setAdapter 适配器,里面可以直接实现接口,或者写个类,实现

复制代码 代码如下:

ListAdapter

这个接口

复制代码 代码如下:

listView.setAdapter

在定义一个list 集合 泛型为String

接口中有个方法:

复制代码 代码如下:

@Override

public Object getItem(int paramInt) {

// TODO Auto-generated method stub

return dataList.get(paramInt);

}

return 就是 返回list的数据

paramInt 这是索引号

直接取list.get(索引)

这样就可以了

还要实现上述的几个方法

注意,如果list!>1 就会报错

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类