Je crée une mise en page à choix multiples pour la liste de contacts. Je choisis avec succès les contacts. Cependant, au lieu d'afficher le nom du contact en mode texte, il apparaît sous la forme Valeur de chaîne. Je veux juste que le nom du contact apparaisse dans TextView et non dans les valeurs String.Pourquoi les contacts sélectionnés n'apparaissent-ils pas dans la vue de texte?
J'ai 2 classes. Une classe est de choisir le contact. Alors que l'autre classe est pour la navigation et la sélection des contacts.
Principales activités de contact
package com.droidnova.android.samples;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.provider.ContactsContract.Contacts;
import android.view.View;
import android.widget.Button;
public class SelectContact extends Activity {
private static final int PICK_CONTACT = 0;
private Button btnPick;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.button);
btnPick = (Button)findViewById(R.id.button);
btnPick.setOnClickListener(new MyOnClickListener());
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_CONTACT) {
if (resultCode == RESULT_OK) {
Cursor contact = getContentResolver().query(data.getData(), null, null, null, null);
contact.moveToFirst();
String name = contact.getString(contact.getColumnIndexOrThrow(People.NAME));
}
}
}
private class MyOnClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
startActivityForResult(new Intent(Intent.ACTION_PICK),PICK_CONTACT);
}
}
}
Contacts Activité
package com.droidnova.android.samples;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.View;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class Contacts extends ListActivity {
ListView list;
TextView Selection;
private static String[] PROJECTION = new String[]
{
People._ID,
People.NAME,
People.NUMBER,
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list=(ListView)findViewById(android.R.id.list);
Cursor cursor = getContentResolver().query(People.CONTENT_URI,
PROJECTION, null, null, null);
startManagingCursor(cursor);
ListAdapter adapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_multiple_choice,
cursor,new String[]{People.NAME},new int[]{android.R.id.text1});
getListView().setChoiceMode(2);
setListAdapter(adapter);
Selection = (TextView)findViewById(R.id.selection);
}
@Override
protected void onListItemClick(ListView parent,View v,int position,long id){
Selection.setText("");
SparseBooleanArray chosen = parent.getCheckedItemPositions();
for(int i=0;i<chosen.size();i++)
{
Log.d("Selection", "index:"+i+";key:"+chosen.keyAt(i) +";value:"+chosen.valueAt(i)
+";"+PROJECTION[chosen.keyAt(i)]);
if(chosen.valueAt(i)){
Selection.append(PROJECTION[chosen.keyAt(i)]+"");
}
}
}
}
Ceci est mon logcat:
12-02 03:10:49.840: INFO/ActivityManager(53): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.droidnova.android.samples/.SelectContact }
12-02 03:10:49.930: INFO/ActivityManager(53): Start proc com.droidnova.android.samples for activity com.droidnova.android.samples/.SelectContact: pid=715 uid=10025 gids={1015}
12-02 03:10:49.930: DEBUG/AndroidRuntime(709): Shutting down VM
12-02 03:10:49.930: DEBUG/dalvikvm(709): DestroyJavaVM waiting for non-daemon threads to exit
12-02 03:10:49.940: DEBUG/dalvikvm(709): DestroyJavaVM shutting VM down
12-02 03:10:49.940: DEBUG/dalvikvm(709): HeapWorker thread shutting down
12-02 03:10:49.940: DEBUG/dalvikvm(709): HeapWorker thread has shut down
12-02 03:10:49.940: DEBUG/jdwp(709): JDWP shutting down net...
12-02 03:10:49.940: INFO/dalvikvm(709): Debugger has detached; object registry had 1 entries
12-02 03:10:49.960: DEBUG/dalvikvm(709): VM cleaning up
12-02 03:10:49.990: ERROR/AndroidRuntime(709): ERROR: thread attach failed
12-02 03:10:50.030: DEBUG/dalvikvm(709): LinearAlloc 0x0 used 639500 of 5242880 (12%)
12-02 03:10:50.230: DEBUG/ddm-heap(715): Got feature list request
12-02 03:10:50.910: INFO/ActivityManager(53): Displayed activity com.droidnova.android.samples/.SelectContact: 1000 ms (total 1000 ms)
12-02 03:10:51.921: INFO/ActivityManager(53): Starting activity: Intent { act=android.intent.action.PICK cmp=com.droidnova.android.samples/.Contacts }
12-02 03:10:52.441: INFO/ActivityManager(53): Displayed activity com.droidnova.android.samples/.Contacts: 431 ms (total 431 ms)
12-02 03:10:53.521: DEBUG/Selection(715): index:0;key:0;value:true;_id
12-02 03:10:54.391: DEBUG/Selection(715): index:0;key:0;value:true;_id
12-02 03:10:54.391: DEBUG/Selection(715): index:1;key:1;value:true;name
12-02 03:10:54.841: DEBUG/Selection(715): index:0;key:0;value:true;_id
12-02 03:10:54.851: DEBUG/Selection(715): index:1;key:1;value:true;name
12-02 03:10:54.851: DEBUG/Selection(715): index:2;key:2;value:true;number
12-02 03:10:57.531: DEBUG/dalvikvm(220): GC freed 43 objects/2024 bytes in 77ms
12-02 03:11:24.040: DEBUG/Selection(715): index:0;key:0;value:false;_id
12-02 03:11:24.040: DEBUG/Selection(715): index:1;key:1;value:true;name
12-02 03:11:24.050: DEBUG/Selection(715): index:2;key:2;value:true;number
12-02 03:11:25.120: DEBUG/Selection(715): index:0;key:0;value:false;_id
12-02 03:11:25.120: DEBUG/Selection(715): index:1;key:1;value:false;name
12-02 03:11:25.130: DEBUG/Selection(715): index:2;key:2;value:true;number
12-02 03:11:25.670: DEBUG/Selection(715): index:0;key:0;value:false;_id
12-02 03:11:25.680: DEBUG/Selection(715): index:1;key:1;value:false;name
12-02 03:11:25.680: DEBUG/Selection(715): index:2;key:2;value:false;number
12-02 03:11:26.641: DEBUG/Selection(715): index:0;key:0;value:true;_id
12-02 03:11:26.641: DEBUG/Selection(715): index:1;key:1;value:false;name
12-02 03:11:26.651: DEBUG/Selection(715): index:2;key:2;value:false;number
12-02 03:11:27.171: DEBUG/Selection(715): index:0;key:0;value:true;_id
12-02 03:11:27.181: DEBUG/Selection(715): index:1;key:1;value:true;name
12-02 03:11:27.181: DEBUG/Selection(715): index:2;key:2;value:false;number
12-02 03:49:00.191: DEBUG/dalvikvm(53): GC freed 17933 objects/880976 bytes in 150ms
12-02 04:22:34.131: DEBUG/dalvikvm(102): GC freed 11675 objects/524064 bytes in 81ms
12-02 04:38:00.181: DEBUG/dalvikvm(53): GC freed 20167 objects/943152 bytes in 147ms
Qu'est-ce que tu veux dire par « valeur de chaîne » ici .. si vous pouvez montrer logcat o/p serait sois utile pour t'aider. –
Ouh.Quelqu'un s'il vous plaît aidez-moi .... –