2012-08-03 3 views
0

일부 연락처를 GridView에 표시하려하지만 사용중인 예가 현재 토스트를 사용하고 있습니다. 그냥 이러한 도구와 함께 연주하고 그래서 안드로이드 개발에 새로운 오전으로 지금은 사전에 도움이 :)토스트를 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을 제거했다; (도와주세요.) –

+0

@AliAbid 내 편집 된 답변보기. 그리고이'GridView'를 사용하십시오. – Praveenkumar

+0

어떤 이유인지 저는 여전히 같은 문제에 직면 해 있습니다. 지금은 신선한 프로젝트를 사용하고 있지만 여전히 운이 좋지 않습니다. ( –

0

는 다음과 같이 UR XML에 GRIDVIEW를 추가 ::

에서 onCreate() 메소드에서 다음
<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>  

, 그 정의 : UR이 필요한 데이터를 ArrayList에 저장소에 while (pCur.moveToNext()) 지금

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

; 은 다음

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

     gridView.setAdapter(adapter); 
관련 문제