2012-08-03 74 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);