2012-01-07 16 views
6

(aktualizacja) To działa na emulatorze, ale nie na moim HTC Legend :(Android ContentProvider nie wraca Phone.NUMBER

Mam następujące metody w moim ListActivity i nie zwraca żadnej wartości w kursor (getCount = 0)

nie mogę zupełnie zrozumieć dlaczego. To nie ma znaczenia, który kontakt klikam na mojej liście.

protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 
    Log.d(TAG,"onListItemClick"); 

    //get Telephone number for entry and display in Toast 
    Uri phoneUri = ContentUris.withAppendedId(Phone.CONTENT_URI, id); 
    Log.d(TAG,String.valueOf(phoneUri)); 
    String[] projection = new String[]{Phone.NUMBER}; 


    //Get Cursor 
    Cursor phoneCursor = managedQuery(phoneUri, projection, null, null, null); 

    while(phoneCursor.moveToNext()){ 
     String dspNumber; 
     String number = phoneCursor.getString(phoneCursor.getColumnIndexOrThrow(Phone.NUMBER)); 
     if(number==""){ 
      dspNumber = "No number found"; 
     }else{ 
      dspNumber = number; 
     } 

     Toast.makeText(this,dspNumber, 3000).show(); 
    } 
} 
+0

Co API poziom twojego urządzenia? – Gnufabio

+1

staraj się nie używać identyfikatora. Mam na myśli spróbuj uzyskać wszystkie wpisy. Może problem polega na tym, że używasz niewłaściwego identyfikatora? – kingston

+1

Czy na pewno nie używasz identyfikatora innej tabeli, na przykład tabeli raw_contact zamiast tabeli danych? – kingston

Odpowiedz

Powiązane problemy