我正在制作一个小应用程序,使用内容提供程序获取我的电话联系人,并将它们显示在一个列表视图中,如下所示。
我想要选择列表视图中的一行,并自动拨打该特定联系人的电话。我尝试过一些方法,但它们都不起作用。有什么想法吗?这是我的代码。
public class MainActivity extends ListActivity implements AdapterView.OnItemClickListener{
ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ContentResolver cr = getContentResolver();
Cursor c = cr.query(ContactsContract.Contacts.CONTENT_URI,
new String[] {ContactsContract.Contacts.DISPLAY_NAME},
null, null, null);
List<String> contacts = new ArrayList<String>();
if (c.moveToFirst()) {
do {
contacts.add(c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));
} while (c.moveToNext());
}
adapter = new ArrayAdapter<String>(this, R.layout.activity_main, contacts);
setListAdapter(adapter);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//The answer should be inside here.
}
}
Cursor
,不要使用ArrayAdapter
,那么要怎么办?使用SimpleCursorAdapter
替代即可。这就是全部。 - pskinkCursor
的数据模型时,它们比使用POJO/loop/ArrayAdapter要好得多,这里有95%的人不知道,更糟糕的是他们固执地坚持使用不良的实践... - pskink