2012-08-03 78 views
0

我想显示一些联系人到GridView中,但我正在使用的示例当前正在使用吐司。由于我是新Android开发,所以我只是用这些工具玩,现在我需要一些帮助:)更改吐司到GridView

private void displayContacts() 
{ 
    ContentResolver cr = getContentResolver(); 
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
    if (cur.getCount() > 0) 
    { 
     while (cur.moveToNext()) 
     { 
      String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
      String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
      if (Integer.parseInt(cur.getString(
        cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) 
      { 
        Cursor pCur = cr.query(
         ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
         null, 
         ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
         new String[]{id}, null); 
        while (pCur.moveToNext()) 
        { 
         String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
         Toast.makeText(NativeContentProvider.this, "Name: " + name + " | Phone No: " + phoneNo, Toast.LENGTH_LONG).show(); 
        } 
        pCur.close(); 
      } 
     } 
    } 
} 

感谢提前:)

回答

1

尝试这一个 -

public class Test extends Activity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     GridView gv = (GridView)findViewById(R.id.gridview); 

     Cursor c = managedQuery(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 

     String[] cols = new String[]{ContactsContract.Contacts.DISPLAY_NAME}; 
     int[] views = new int[] {android.R.id.text1}; 

     SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
       android.R.layout.simple_list_item_1, 
       c, cols, views); 
     gv.setAdapter(adapter); 
    } 
} 

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<!-- This file is at /res/layout/gridview.xml --> 
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10px" 
    android:verticalSpacing="10px" 
    android:horizontalSpacing="10px" 
    android:numColumns="auto_fit" 
    android:columnWidth="100px" 
    android:stretchMode="columnWidth" 
    android:gravity="center" 
    /> 

代替以上光标,你可以ü你自己的光标值。并且,确保你的xml文件中有GridView。不要忘记在清单文件中添加重要权限。

<uses-permission android:name="android.permission.READ_CONTACTS"/> 

希望这可以帮助你。

+0

感谢队友,但我面临的一个问题,因为我的(R.layout.Main)是没有得到解决,我想我的事情。我也删除了Import.android.R;并且还清理了很多次的项目:(请帮助。) – 2012-08-08 07:31:59

+0

@AliAbid查看我编辑的答案。然后,使用这个'GridView' – Praveenkumar 2012-08-08 07:36:06

+0

由于某些原因,我仍然面临同样的问题。我正在使用一个新的项目,但仍然没有运气: ( – 2012-08-08 07:51:46

0

添加在GridView在乌尔XML这样的:

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/grid_view" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:numColumns="auto_fit" 
    android:columnWidth="90dp" 
    android:horizontalSpacing="10dp" 
    android:verticalSpacing="10dp" 
    android:gravity="center" 
    android:stretchMode="columnWidth" > 

</GridView>  

然后在onCreate()方法,定义:

 gridView = (GridView) findViewById(R.id.gridView1); 
现在

while (pCur.moveToNext()) 在的ArrayList商店乌尔所需的数据; 然后

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
        android.R.layout.simple_list_item_1, numbers); 

     gridView.setAdapter(adapter);