2013-02-16 3 views
0

콘텐츠 공급자 "content : // contacts/people"의 모든 열을 보여주는 응용 프로그램을 만들었습니다. 필드 중 하나가 times_contacted되었습니다. 그래서, 나는 표시 이름과 times_contacted를 보여줄 응용 프로그램을 만들었습니다. ContactContract에 대해 알고 있습니다. 하지만 휴면 코드가 계정 세부 정보를 표시하지 않는다는 사실을 알고 싶습니다. 응용 프로그램은 JellyBean 에뮬레이터에서 제대로 작동하지만 아이스크림 샌드위치에서 실행되는 내 휴대 전화에서는 응용 프로그램이 빈 활동을 표시하지만 에뮬레이터에서는 연락처 목록이 표시됩니다. CursorLoader를 사용하는 동안 커서 참조를 얻을 수 없어 쿼리 결과를 반복 할 수있는 방법을 알고 싶습니다. ContentResolver를 분리하여 사용해야합니까? 다음은 내 앱용 코드입니다. READ_CONTACT 권한을 포함 시켰습니다.응용 프로그램이 연락처를 표시하지 않습니다.

package legacy_systems.contactsdisplay; 

import android.net.Uri; 
import android.os.Bundle; 
import android.app.ListActivity; 
import android.app.LoaderManager.LoaderCallbacks; 
import android.content.CursorLoader; 
import android.content.Loader; 
import android.view.Menu; 
import android.widget.SimpleCursorAdapter; 
import android.widget.Toast; 
import android.database.Cursor; 
public class MainActivity extends ListActivity implements LoaderCallbacks<Cursor>{ 
    SimpleCursorAdapter madapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     madapter = new SimpleCursorAdapter(this, 
              android.R.layout.simple_list_item_2, 
              null, 
              new String[]{"display_name","times_contacted" }, 
              new int[]{android.R.id.text1, android.R.id.text2},0); 
     setListAdapter(madapter); 

     getLoaderManager().initLoader(0, null, this); 
     Toast.makeText(this, "Done", Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 
    public Loader<Cursor> onCreateLoader(int id, Bundle args) { 
     Uri baseUri = Uri.parse("content://contacts/people"); 
     return new CursorLoader(this, baseUri,null,null,null,null); 
     // TODO Auto-generated method stub  
    } 
    @Override 
    public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) { 
     // TODO Auto-generated method stub 
     madapter.swapCursor(arg1); 
    } 



    @Override 
    public void onLoaderReset(Loader<Cursor> arg0) { 
     // TODO Auto-generated method stub 
     madapter.swapCursor(null); 
    } 

} 

답변

0

글쎄, 연락처 컨텐트 프로 바이더를 쿼리하여 얻은 커서를 반복 할 때 커서가 비어 있음을 알게되었습니다. 그 안에 어떤 행도 없었습니다. 그래서, 표시 될 기회가 없습니다.

관련 문제