服务器之家

服务器之家 > 正文

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

时间:2021-01-27 14:31     来源/作者:Android开发网

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

复制代码 代码如下:


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

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
返回顶部