2013-03-22 5 views
0

그리고 String [] FROM을 올바르게 사용하여 커서를 매핑하고 있습니까?MainActivity에서 SimpleCursorAdapter가 작동하지 않습니다.

내가 MainActivity 내에서 OnCreate 방법이 제공되는 오류에 SimpleCursorAdapter를 사용하고있어서, SimpleCursorAdapter은 (MainActivity는, INT가, 커서, 문자열 [] [] INT)

타입 MainActivity에 대한 정의되지

내가 API 문서의 생성자를 체크 한

는에 나는 여기에

public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to)** 

올바르게되어 사용하고있어서, 내 MainActivity.java : 당신이 SimpleCursorAdapter의 객체를 생성하기위한 new을 사용하는 것을 잊지

adapter =new SimpleCursorAdapter(MainActivity.this, 
     ^^^  android.R.layout.two_line_list_item,cursor,FROM,TO); 

:로

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/listview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
    </ListView> 

</LinearLayout> 
+1

R.layout.listview의 난 당신의 오류 목록 = (ListView에가) findViewById를 (R.layout.listview가) (의 ListView) findViewById를 (R.id.listview) – vinoth

+0

감사 @vinoth 나는 목록을 가지고 =이 그것을 변경할 생각 변경했지만 여전히 SimpleCursorAdapter에 대한 오류가 발생했습니다 –

+0

ID로보기를 찾고 있으므로 R.id.listviewid.try와 같은 id 값을 부여해야합니다. – vinoth

답변

3

SimpleCursorAdapter 객체를 생성 : 여기

package com.example.listview; 

import android.os.Bundle; 
import android.provider.ContactsContract; 
import android.app.Activity; 
import android.content.Context; 
import android.database.Cursor; 

import android.util.Log; 
import android.view.Menu; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 

public class MainActivity extends Activity { 

    private ListView list; 
    private Cursor cursor; 
    private SimpleCursorAdapter adapter; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.listview); 

     list = (ListView) findViewById(R.layout.listview);  

     cursor = getContentResolver().query(
       ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, 
       null, null); 

     String [] FROM = {cursor 
      .getString(cursor 
        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)), cursor 
        .getString(cursor 
          .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))}; 

     int [] TO = {android.R.id.text1, android.R.id.text2}; 

     adapter = SimpleCursorAdapter(MainActivity.this, android.R.layout.two_line_list_item,cursor,FROM,TO); 

     list.setAdapter(adapter); 
    } 

} 

그리고 내 레이아웃 listview.xml입니다

및 ListView id를 사용하여 초기화하십시오. list 대신

list= (ListView) findViewById(R.id.listview); 
+0

감사하지만 오류가 하나 더 있습니다. 문자열 [] 커서를 올바르게 매핑하려면 –

+0

@ Er.NikhilAgrawal : 네, StringController.CommonDataKinds.Phone.NUMBER)}; ' –

+0

입니다. 내 마지막 퀘스트 n SimpleCursorAdapter는 API 레벨 11에서 무시됩니다. 11 이후 다른 api에서도 작동합니다. api 레벨 11에서 도입 된 새로운 기술을 사용하고 있다면 이전 api에서 작동할지 여부를 결정합니다. 모든 pi 레벨에서 작동 할 수있는 것을 사용하십시오. –

관련 문제