2010-11-21 15 views
0

グループアンドロイドSMSを作成しています。したがって、私はチェックボックスが必要です。しかし、私の問題は、私は選択した連絡先を取得する方法を理解できないのですか?選択した連絡先をチェックボックスから取得する方法(Android)

この私のレイアウト:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/topLayout" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_centerHorizontal="true"> 

<ListView 
android:id="@+id/list" 
android:layout_width="fill_parent" android:layout_height="fill_parent"  android:choiceMode="multipleChoice"> 
</ListView> 

<ImageView android:id="@+id/contact_image" 
    android:src="@drawable/icon" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Name: " 
    android:id="@+id/contact_name" 
    android:textSize="18dip" 
    android:layout_below="@id/contact_image"  
     /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Phone: " 
      android:id="@+id/phone_number" 
      android:textSize="28dip" 
      android:layout_below="@id/contact_name" 


     /> 
     <CheckBox android:id="@+id/checkBox" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:checked="false" android:layout_alignParentRight="true"  android:focusable="false"> 
    </CheckBox> 

    </RelativeLayout> 

この私のコード: - 個別のアレイで

package com.droidnova.android.samples; 

    import android.app.ListActivity; 
    import android.content.Intent; 
    import android.database.Cursor; 
    import android.os.Bundle; 
    import android.provider.Contacts.People; 
    import android.util.SparseBooleanArray; 
    import android.view.Menu; 
import android.view.MenuItem; 
import android.view.MenuInflater; 
import android.widget.ArrayAdapter; 
import android.widget.CheckBox; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 



    public class Contacts extends ListActivity { 
private CheckBox checkBox; 
private ListView listView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    listView=(ListView)findViewById (R.id.list); 
    final ListView listView = getListView(); 
    listView.setItemsCanFocus(false); 
    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    listView.setAdapter(new ArrayAdapter<String>(this, 
    android.R.layout.simple_list_item_multiple_choice, lv_items)); 





    Cursor cursor = getContentResolver().query(People.CONTENT_URI, 
      new String[]{People._ID,People.NAME,People.NUMBER}, null, null, null); 
    startManagingCursor(cursor); 

    // start mappings 
    String[] columns = new String[] {People.NAME, People.NUMBER}; 
    int[] names = new int[] {R.id.contact_name, R.id.phone_number}; 

    SimpleCursorAdapter myAdapter = new SimpleCursorAdapter(this, R.layout.contact, cursor, columns, names); 
    setListAdapter(myAdapter); 
    this.setListAdapter(myAdapter); 
} 



    public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.firstmenu,menu); 
    return true; 
    } 
    public boolean onOptionsItemSelected(MenuItem item){ 
    switch(item.getItemId()){ 
    case R.id.next: 
     next(); 
    break; 
    case R.id.select: 
    return true; 
    case R.id.back: 
     final Intent i = new Intent(this,SelectContact.class); 
     startActivity(i); 
     break; 
    } 
return false; 
    } 

答えて

0

読むの連絡先、あなたはその配列でやりたい.........

サンプルについて、あなたは、こちらにチェックすることができ
http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/

これはあなたを助ける.........

+0

は例を与えることができますか? –

+0

私は返信を編集しました。確認してください – viv

+0

私は同じ問題に直面していると思われます。 –

0

この私の更新されたコード。 「マーク」メニューボタンをクリックすると、選択したアイテムが表示され、テキストの編集に表示されません。

更新コード: -

package com.droidnova.android.samples; 

    import java.util.ArrayList; 
    import java.util.zip.Inflater; 
    import android.app.ListActivity; 
    import android.content.Context; 
    import android.content.Intent; 
    import android.database.Cursor; 
    import android.os.Bundle; 
    import android.provider.Contacts.People; 
    import android.util.Log; 
    import android.util.SparseBooleanArray; 
    import android.view.Menu; 
    import android.view.MenuItem; 
import android.view.MenuInflater; 
import android.widget.CheckBox; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 

public class Contacts extends ListActivity { 
ListView list; 
CheckBox cb; 


private static String[] PROJECTION = new String[] 
{ 
    People._ID, 
    People.NAME, 
    People.NUMBER, 
}; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.contact); 
    Cursor cursor = getContentResolver().query(People.CONTENT_URI, 
      null, null, null, null); 
    startManagingCursor(cursor); 


    // start mappings 
    String[] columns = new String[] {People.NAME, People.NUMBER}; 
    int[] names = new int[] {R.id.contact_name, R.id.phone_number}; 

    ListAdapter mAdapter = new SimpleCursorAdapter(this,R.layout.contact, cursor,columns,names); 
    setListAdapter(mAdapter); 
    getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

    } 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.firstmenu,menu); 
    return true; 
} 
public boolean onOptionsItemSelected(MenuItem item){ 
    switch(item.getItemId()){ 
    case R.id.mark: 
    next(); 


    break; 
    case R.id.select: 



     return true; 
    case R.id.back: 
     final Intent i = new Intent(this,SelectContact.class); 
     startActivity(i); 
     return true; 
    } 
return false; 
    } 
    private void next() { 
// TODO Auto-generated method stub 

    SparseBooleanArray a = list.getCheckedItemPositions(); 

    for(int i = 0; i < PROJECTION.length ; i++) 

    { 

    if (a.valueAt(i)) 

    { 

    Long val = list.getAdapter().getItemId(a.keyAt(i)); 

    Log.v(TAG, "index=" + val.toString()); 

    list.add(list.getAdapter().getItemId((a.keyAt(i)))); 

    } 

    } 

} 

}