SORU
15 Mayıs 2009, Cuma


Nasıl Android rehber aramak?

Android uygulaması yapıyorum ve telefonun kişi listesinde aramak gerekir. Rehberden bir işlev çağrısı, bir kişi seçmek, kişinin adı ile benim app için geri dönmek istiyorum. Burada internete girdim kodu ama olmuyor.

import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.view.View;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;

public class Contacts extends ListActivity {

    private ListAdapter mAdapter;
    public TextView pbContact;
    public static String PBCONTACT;
    public static final int ACTIVITY_EDIT=1;
    private static final int ACTIVITY_CREATE=0;

    // Called when the activity is first created. 
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        Cursor C = getContentResolver().query(People.CONTENT_URI, null, null, null, null);
        startManagingCursor(C);

        String[] columns = new String[] {People.NAME};
        int[] names = new int[] {R.id.row_entry};

        mAdapter = new SimpleCursorAdapter(this, R.layout.mycontacts, C, columns, names);
        setListAdapter(mAdapter);
    } // end onCreate()
    // Called when contact is pressed
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        Cursor C = (Cursor) mAdapter.getItem(position);
        PBCONTACT = C.getString(C.getColumnIndex(People.NAME));

        // RHS 05/06
        //pbContact = (TextView) findViewById(R.id.myContact);
        //pbContact.setText(new StringBuilder().append("b"));

        Intent i = new Intent(this, NoteEdit.class);
        startActivityForResult(i, ACTIVITY_CREATE);
    }
}

CEVAP
15 Mayıs 2009, Cuma


Ben değilim 100% emin ne sizin örnek kod yapmam gerekiyor, ama aşağıdaki kod parçası lazım yardım 'çağrısı rehber işlevi, bir kişi, daha sonra geri dönmek için [] uygulamasıyla ilgili kişinin adı'.

Bu işlem için üç adım vardır.

1) İzinleri

Uygulama için Rehber veri okumak için izin bildirim ekleyin.

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

2) Kişi Seçici Arıyor

Etkinlik kapsamında, sistem Kişiler URİ öğeleri PİCK bir eylem gerçekleştirebileceği bir Aktivite bulmak isteyen bir Niyet oluşturun.

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

startActivityForResult, Bu Niyeti (ve isteği bir kod tam sayı PICK_CONTACT Bu örnekte) geçen arayın. Bu Android kayıtlı People.CONTENT_URI, seçim yapıldığında bu Aktiviteye dönüş, daha sonra (ya da iptal) ACTION_PICK desteklemek için bir Etkinlik başlatmak için neden olacaktır.

startActivityForResult(intent, PICK_CONTACT);

3) Sonuç için Dinleme

Etkinlik ayrıca, dönüş için dinlemek onActivityResult yöntemi geçersiz 'bir kişi' adım 2'de başlattı. Aktivite seçin İade talebi kodu bekliyordunuz değeri maçı, sonuç kodu RESULT_OK olduğunu kontrol etmelisiniz.

getData() çağırarak seçilen kişinin URİ alabilirsinizveriNiyet parametre. Seçilen kişinin adını almak için URİ, yeni bir sorgu oluşturmak için kullanmanız gerekir ve döndürülen imleç adı ayıklamak.

@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 =  getContentResolver().query(contactData, null, null, null, null);
        if (c.moveToFirst()) {
          String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
          // TODO Whatever you want to do with the selected contact name.
        }
      }
      break;
  }
}

Tam Kaynak Buraya Tıklayın : Click here For Source

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ☆ SUB4SUB CENTER! ☆ spam here

    ☆ SUB4SUB

    22 ŞUBAT 2010
  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • Stevie

    Stevie

    2 Mayıs 2010