2012-05-04 23 views
4

Androidで複数の連絡先を選択できる必要があります。このフローは次のようになります。Android複数の連絡先の選択(電話番号を選択するオプション付き)

  1. ユーザーが連絡先アプリケーションを開くボタンをクリックします。
  2. しかし、1人の連絡先を選択できるのではなく、複数の連絡先を選択できる必要があります。
  3. 連絡先に複数の電話番号がある場合は、その電話番号を選択する必要があります。

この機能は、メッセージアプリで「連絡先」をクリックすると、すでにSamsung Android Phone(Running 2.3 Gingerbread)に表示されています。下のスクリーンショットを参照してください。

enter image description here

enter image description here

enter image description here

+0

はこれが何をしたい正確であるhttp://www.quicktips.in/how-to-create-multi-select-listview-android-with-custom-adapter/ –

答えて

0

あなたはすべてを自分でこれを記述する必要があります。 ContactsContractプロバイダーを使用して、電話番号を持つすべての連絡先を照会し、選択した連絡先に対して、その連絡先のすべての電話番号を照会することができます。アクティビティやダイアログに結果を表示することができます。

4

この方法では作成されていないため、ほとんどの作業を自分で行う必要があります。幸いにも、それほど難しいことではありません。

表示

連絡先を表示するには、あなたは複数選択の選択モードでリストビューのいずれかを使用することができ、またはカスタムアダプタを作成し、定期的なリストビューにバインドすることができます。私はしませんマルチ選択のリストビューは、各行のテキスト以外のものを置くことができますが、あなたが見つけるために深く掘る必要があります。

私は非常によく似たもの(複数の電話番号の部分を除く)のためにカスタムアダプターメソッドを使用しました。それはかなり簡単ですし、カスタムアダプターは長期的には本当に便利だとわかります。カスタムアダプタのセットアップを

Custom Adapter Listview Tutorial

、あなたは自分の名前と電話番号(複数可)を含む人のためのすべての情報とデータオブジェクトを作成することができます。カスタム・アダプターのgetViewでは、各情報の表示方法と場所と場所を決めることができます。

情報の収集

あなたの連絡先の情報を取得するためにContactContract APIを使用する必要があります。

Reading Contact Info

Reading ALL phone numbers for a Contact

0

残念ながら、このコードはアンドロイド

のすべてのバージョンはサポートされていません私はそれが後半にちょっと知っているが、これを共有したいと思いました! ネットで不完全なコードがいくつか見つかりました。 基本的には、ピッカーを起動してエクストラのデータを返すようにしてください]]

そこには完全な答えがありませんでしたので、そこにいくつかの魂に役立つことを願っています!

をお楽しみください:

public void pickContact(View v){ 
    try { 
     Intent phonebookIntent = new Intent("intent.action.INTERACTION_TOPMENU"); 
     phonebookIntent.putExtra("additional", "phone-multi"); 
     startActivityForResult(phonebookIntent, PICK_CONTACT); 
     // PICK_CONTACT IS JUST AN INT HOLDING SOME NUMBER OF YOUR CHOICE 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

public String getData(String contact, int which) 
{ 
    return contact.split(";")[which]; 
} 

public void onActivityResult(int reqCode, int resultCode, Intent data) { 
    final int URI = 0; 
    final int NUMBER = 1; 

    if (RESULT_OK != resultCode) return; 
    Bundle contactUri = data.getExtras(); 
    if (null == contactUri) return; 

    ArrayList<String> contacts = (ArrayList<String>)contactUri.get("result"); 
    Toast.makeText(getApplicationContext(), getData(contacts.get(0),NUMBER), Toast.LENGTH_SHORT).show(); 
} 
関連する問題