当前位置: 移动技术网 > IT编程>移动开发>Android > Android控件ListView用法(读取联系人示例代码)

Android控件ListView用法(读取联系人示例代码)

2019年07月24日  | 移动技术网IT编程  | 我要评论

冷人傲世,最有趣的网站,查找同名同姓的人

示例代码:
这是一个读取联系人的代码:
复制代码 代码如下:

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 就会报错

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网