
现在我只能显示同样在阵列中的第一个phoneNumber.
这是我的代码:
public class Contacts extends ListActivity { SharedPreferences settings ; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestwindowFeature(Window.FEATURE_NO_Title); setContentVIEw(R.layout.contacts); setTitle("Choose a phone"); // query: contacts with phone shorted by name settings = this.getSharedPreferences(SETTINGS,Context.MODE_PRIVATE); String message = settings.getString("contacts","0,0"); String [] contacts = message.split(","); String query = " IN ("; for (int i = 1; i < contacts.length; i++) { query += contacts[i]; if (i < contacts.length - 1) query += ","; } query += ")"; Cursor mCursor = getContentResolver().query( Data.CONTENT_URI,new String[] { Data._ID,Data.disPLAY_name,Phone.NUMBER,Phone.TYPE },Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "' AND " + Phone.NUMBER + " IS NOT NulL AND " + Phone.NUMBER + query,null,Data.disPLAY_name + " ASC"); startManagingCursor(mCursor); // Setup the List listadapter adapter = new SimpleCursorAdapter(this,// context androID.R.layout.simple_List_item_2,// Layout for the rows mCursor,// cursor new String[] { Data.disPLAY_name,Phone.NUMBER },// cursor // fIElds new int[] { androID.R.ID.text1,androID.R.ID.text2 } // vIEw // fIElds ); setlistadapter(adapter); }解决方法 我不确定这是否是唯一的问题.你没有在IN statemet中使用撇号 你可以尝试使用
String query = " IN ("; for (int i = 1; i < contacts.length; i++) { query+= "'"; query += contacts[i]; query+= "'"; if (i < contacts.length - 1) query += ","; } query += ")"; 总结 以上是内存溢出为你收集整理的android – 列出数组中的联系人全部内容,希望文章能够帮你解决android – 列出数组中的联系人所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)