Android将联系人读取到LISTVIEW中遇到的问题!
生活随笔
收集整理的這篇文章主要介紹了
Android将联系人读取到LISTVIEW中遇到的问题!
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最近在學(xué)習(xí)Android開發(fā),學(xué)習(xí)到ListView控件使用的時候參考了《Android應(yīng)用開發(fā)揭秘》中的代碼,由于該書是基于Android ?2.0進(jìn)行編寫的,其中的部分代碼到了更新的Android平臺就失效了。本程序的功能是將聯(lián)系人添加到一個ListView中,并顯示在屏幕上,當(dāng)用戶上下滾動選擇項的時候會提示滾動到第幾項,點(diǎn)擊項目的時候也會提示點(diǎn)擊了第幾項。代碼如下:package?com.lu.listviewtest;
import?android.app.Activity;
import?android.database.Cursor;
import?android.os.Bundle;
import?android.provider.ContactsContract;
import?android.provider.ContactsContract.PhoneLookup;
import?android.view.View;
import?android.widget.Adapter;
import?android.widget.AdapterView;
import?android.widget.ListAdapter;
import?android.widget.ListView;
import?android.widget.SimpleCursorAdapter;
import?android.widget.Toast;
public?class?ListViewTest?extends?Activity?{
????/**?Called?when?the?activity?is?first?created.?*/
????
????@Override
????public?void?onCreate(Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.main);
????????android.widget.ListView?listview=(ListView)findViewById(R.id.ListView01);
????????Cursor?cur=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,?null,?null,?null,?null);
????????startManagingCursor(cur);
????????ListAdapter?adapter=new?SimpleCursorAdapter(this,android.R.layout.simple_list_item_2,cur,
????????????????new?String[]?{PhoneLookup.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER},
????????????????new?int?[]?{android.R.id.text1,android.R.id.text2});
????????
????????listview.setAdapter(adapter);
????????listview.setOnItemSelectedListener(new?AdapterView.OnItemSelectedListener(){
????????????@Override
????????????public?void?onItemSelected(AdapterView<?>?arg0,View?arg1,int?arg2,long?arg3)
????????????{
????????????????DisplayToast("滾動到第"+Long.toString(arg0.getSelectedItemId())+"項");?
????????????????????????????????
????????????}
????????????public?void?onNothingSelected(AdapterView<?>?arg0)
????????????{
????????????????
????????????}
????????});
????????
????????listview.setOnItemClickListener(new?AdapterView.OnItemClickListener()?{
????????????@Override
????????????public?void?onItemClick(AdapterView<?>?arg0,View?arg1,int?arg2,long?arg3)
????????????{
????????????????DisplayToast("選中了第"+Integer.toString(arg2+1)+"項");
????????????}
????????????
????????});
????????
????????
????}
????
????public?void?DisplayToast(String?str){
????????Toast.makeText(this,?str,?Toast.LENGTH_SHORT).show();
????}
????
}
import?android.app.Activity;
import?android.database.Cursor;
import?android.os.Bundle;
import?android.provider.ContactsContract;
import?android.provider.ContactsContract.PhoneLookup;
import?android.view.View;
import?android.widget.Adapter;
import?android.widget.AdapterView;
import?android.widget.ListAdapter;
import?android.widget.ListView;
import?android.widget.SimpleCursorAdapter;
import?android.widget.Toast;
public?class?ListViewTest?extends?Activity?{
????/**?Called?when?the?activity?is?first?created.?*/
????
????@Override
????public?void?onCreate(Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.main);
????????android.widget.ListView?listview=(ListView)findViewById(R.id.ListView01);
????????Cursor?cur=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,?null,?null,?null,?null);
????????startManagingCursor(cur);
????????ListAdapter?adapter=new?SimpleCursorAdapter(this,android.R.layout.simple_list_item_2,cur,
????????????????new?String[]?{PhoneLookup.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER},
????????????????new?int?[]?{android.R.id.text1,android.R.id.text2});
????????
????????listview.setAdapter(adapter);
????????listview.setOnItemSelectedListener(new?AdapterView.OnItemSelectedListener(){
????????????@Override
????????????public?void?onItemSelected(AdapterView<?>?arg0,View?arg1,int?arg2,long?arg3)
????????????{
????????????????DisplayToast("滾動到第"+Long.toString(arg0.getSelectedItemId())+"項");?
????????????????????????????????
????????????}
????????????public?void?onNothingSelected(AdapterView<?>?arg0)
????????????{
????????????????
????????????}
????????});
????????
????????listview.setOnItemClickListener(new?AdapterView.OnItemClickListener()?{
????????????@Override
????????????public?void?onItemClick(AdapterView<?>?arg0,View?arg1,int?arg2,long?arg3)
????????????{
????????????????DisplayToast("選中了第"+Integer.toString(arg2+1)+"項");
????????????}
????????????
????????});
????????
????????
????}
????
????public?void?DisplayToast(String?str){
????????Toast.makeText(this,?str,?Toast.LENGTH_SHORT).show();
????}
????
}
? ?
? ? 書中new?String[]?{PhoneLookup.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER}?,這句的代碼為:new?String[]?{PhoneLookup.DISPLAY_NAME,PhoneLookup.NUMBER},在2.0以上的平臺已經(jīng)失效了。
?
? ? 在執(zhí)行onItemSelected函數(shù)的時候,我發(fā)現(xiàn)一個問題:比如屏幕上有3個聯(lián)系人,滾動到第一項,提示1,滾動到第二項,提示的卻是3,滾動到第三項,提示的卻是5.。。這個是為什么呢?有人能解答么?不勝感激!!!?
轉(zhuǎn)載于:https://www.cnblogs.com/zhuroubaozi/archive/2011/06/15/2081632.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Android将联系人读取到LISTVIEW中遇到的问题!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++0x FAQ中文版:什么时候C++
- 下一篇: 用Java实现几种常用排序算法(先实现一