2010-11-21 14 views
0

Ich erstelle eine Gruppe Android SMS. Daher brauche ich ein Kontrollkästchen. Aber, mein Problem ist, kann ich nicht herausfinden, wie man die ausgewählten Kontakte bekommt?So erhalten Sie die ausgewählten Kontakte aus Kontrollkästchen (Android)

Das ist mein Layout:

<?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> 

Diese meine Codes: -

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; 
    } 

Antwort

0

lesen Kontakte separat in Array, dann tun, was Sie mit diesem Array wollen .........

Für die Probe, können Sie hier überprüfen,
http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/

Dies wird Ihnen helfen .........

+0

Beispiel geben? –

+0

Ich habe Antwort bearbeitet, überprüfen Sie bitte – viv

+0

Ich habe das Array getan. Aber es scheint, dass ich das gleiche Problem habe. –

0

Das sind meine aktualisierten Codes. Wann immer, ich klicke auf die 'Mark' Menü-Taste, es erhält nicht das ausgewählte Element und Anzeige bei Text bearbeiten.

aktualisiert Codes: -

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)))); 

    } 

    } 

} 

}

Verwandte Themen