Holen Sie sich android Kontakt Telefonnummer Liste

Ich bin neu bei android.Wenn ich versuche, Kontaktnamen zu bekommen, funktioniert es gut, aber ich möchte nur Zahlen bekommen, aber ich bin nicht in der Lage, dies zu tun. Mein Code ist: –

package com.example.sqllitecontactlist; import android.app.Activity; import android.database.Cursor; import android.os.Bundle; import android.provider.ContactsContract; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener; public class PhoneBookActivity extends Activity { //Android listview object ListView listViewPhoneBook; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.phone_book); //get the ListView Reference from xml file listViewPhoneBook=(ListView)findViewById(R.id.listPhoneBook); String[] arrayColumns = new String[]{ ContactsContract.CommonDataKinds.Phone.NUMBER}; // arrayViewID is the id of the view it will map to here textViewPhone only int[] arrayViewID = new int[]{R.id.textViewNumber}; Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, arrayColumns, null, null, null); SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.each_contact, cursor, arrayColumns, arrayViewID); listViewPhoneBook.setAdapter(adapter); }} 

Wenn ich das ausführe, heißt es "java.lang.IllegalArgumentException: Ungültige Spalte data1". Ich habe es sehr gegoogelt und habe eine Lösung angewendet, aber gescheitert. Bitte hilf mir

  • Wie installiere ich .xap phonegap in Windows Phone 8 installieren?
  • AVD- oder SDK-Manager in Eclipse nicht finden
  • Android: wie man überprüft, ob die Anwendung im Hintergrund läuft
  • Android scrollview entfernen blaues Licht
  • Android-Bildschirmauflösungen
  • App stürzt beim Zuweisen eines neuen Adapters zu meinem ViewPager ab
  • Android - Views, die auf dem letzten Frame eines Vollbild-Videos überlagert sind, werden beim Ein- und Ausschalten des Bildschirms nicht ordnungsgemäß neu gezeichnet
  • Qemu, div durch null, mxcsr registrieren
  • Teil des Fragments in ViewPager immer abgeschnitten am unteren Rand des Bildschirms (Android)
  • Android Google Analytics Integrationsfehler
  • Android In App Billing: Kann nicht starten startPurchaseFlow, weil launchPurchaseFlow läuft
  • GetLocationOnScreen () vs getLocationInWindow ()
  • 4 Solutions collect form web for “Holen Sie sich android Kontakt Telefonnummer Liste”

      getNumber(this.getContentResolver()); public void getNumber(ContentResolver cr) { Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null); // use the cursor to access the contacts while (phones.moveToNext()) { String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); // get display name phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); // get phone number System.out.println(".................."+phoneNumber); } } 

    Activity_main.xml

      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <ListView android:layout_width="match_parent" android:layout_height="fill_parent" android:id="@+id/lv"/> </RelativeLayout> 

    MainActivity.java

      public class MainActivity extends Activity { String phoneNumber; ListView lv; ArrayList <String> aa= new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv= (ListView) findViewById(R.id.lv); getNumber(this.getContentResolver()); } public void getNumber(ContentResolver cr) { Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null); while (phones.moveToNext()) { String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); System.out.println(".................."+phoneNumber); aa.add(phoneNumber); } phones.close()// close cursor ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,aa); lv.setAdapter(adapter); //display contact numbers in the list } } 

    Schnappschuss

    Bildbeschreibung hier eingeben

    Stellen Sie sicher, dass Sie dies in Manifest haben

      <uses-permission android:name="android.permission.READ_CONTACTS"/> 

    Meine Lösung, um alle Kontakte wiederherzustellen:

      Cursor cursor = null; try { cursor = context.getContentResolver().query(Phone.CONTENT_URI, null, null, null, null); int contactIdIdx = cursor.getColumnIndex(Phone._ID); int nameIdx = cursor.getColumnIndex(Phone.DISPLAY_NAME); int phoneNumberIdx = cursor.getColumnIndex(Phone.NUMBER); int photoIdIdx = cursor.getColumnIndex(Phone.PHOTO_ID); cursor.moveToFirst(); do { String idContact = cursor.getString(contactIdIdx); String name = cursor.getString(nameIdx); String phoneNumber = cursor.getString(phoneNumberIdx); //... } while (cursor.moveToNext()); } catch (Exception e) { e.printStackTrace(); } finally { if (cursor != null) { cursor.close(); } } 

    Du brauchst diese Erlaubnis in deinem Manifest:

     <uses-permission android:name="android.permission.READ_CONTACTS" /> 

    Ich hoffe ich habe dir geholfen

    @ Arpit:

    Füge die Erlaubnis in deinem Manifest hinzu.

    ABER WICHTIG … Hast du das nicht gerade unter der Linie gesehen, wo du die Telefonnummer formatiert hast, hast du nicht die Namen hinzugefügt? Sie sollten den Namen der Nummer nur so hinzufügen, wie Sie die Telefonnummer hinzugefügt haben (ich habe den Code unten eingeschlossen):

     ..System.out.println(".................."+phoneNumber); aa.add(name); aa.add(phoneNumber); 

    Die Ausgabe des obigen Codes wird getrennte Namen und Zahlen auf dein Listview (wie dieses) sein:


    Name

    Nummer

    Name

    Um das in einer Zeile anzuzeigen, kannst du dies tun:

    Aa.add (name + "\ n" + phoneNumber);

    Und die Ausgabe wird so sein:


    Namensnummer


    Namensnummer


    Namensnummer


    Viel Glück!

    Finden Sie die Lösung unten, Es wird für den Kontakt Kontakt aus der Kontaktliste zu arbeiten.

    Sie benötigen Erlaubnis wie:

      android:name="android.permission.READ_CONTACTS"/> 

    Dann rufen Sie den Kontakt Picker an:

      Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 

    Dann,

      @Override public void onActivityResult(int reqCode, int resultCode, Intent data) { super.onActivityResult(reqCode, resultCode, data); switch (reqCode) { case (PICK_CONTACT) : if (resultCode == Activity.RESULT_OK) { Uri contactData = data.getData(); Cursor c = managedQuery(contactData, null, null, null, null); if (c.moveToFirst()) { String name = c.getString(c.getColumnIndexOrThrow(People.NAME)); // TODO Whatever you want to do with the selected contact name. } } break; } } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.