Cliquez sur écoute sur le ListView
J'ai modifié cet exemple à partir du SDK pages de saisir tous les Groupes de Contacts à partir du téléphone et de les afficher. Je ne peux pas, cependant, de comprendre comment cliquez sur l'un d'eux, puis utilisez les Groupes._ID de faire autre chose. Quelqu'un peut-il m'apprendre comment obtenir un clic/sélectionnez le port d'écoute sur cette liste?
MyListAdapter.java
package com.example.simplelist;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts.Groups;
import android.widget.ListAdapter;
import android.widget.SimpleCursorAdapter;
public class MyListAdapter extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_list_activity_view);
Cursor mCursor = this.getContentResolver().query(Groups.CONTENT_URI, null, null, null, null);
startManagingCursor(mCursor);
ListAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.two_line_list_item, mCursor, new String[] {Groups.NAME, Groups._ID}, new int[] {android.R.id.text1, android.R.id.text2});
setListAdapter(adapter);
}
}
custom_list_activity_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00FF00"
android:layout_weight="1"
android:drawSelectorOnTop="false" android:choiceMode="singleChoice" android:clickable="true" />
<TextView android:id="@id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF0000"
android:text="No data"/>
</LinearLayout>
two_line_list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/text1"
android:textSize="16sp"
android:textStyle="bold"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/text2"
android:textSize="16sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.simplelist"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="3" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MyListAdapter"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.READ_CONTACTS" />
</manifest>
OriginalL'auteur Bill Mote | 2011-03-02
Vous devez vous connecter pour publier un commentaire.
Cela devrait vous permettre d'interagir avec l'élément sélectionné de la manière que vous voulez.
MyListAdapter.java
two_line_list_item.xml
OriginalL'auteur Greg Zimmers
Puisque vous utilisez ListActivity vous avez besoin de remplacer onListItemClick().
+1 parce que c'est 1/2 de la réponse. Parce que j'ai lié les données à un curseur n'importe où j'ai cliqué, j'ai été d'obtenir le curseur plutôt que de l'élément. Si je générer la liste en parcourant et en les ajoutant avec un adaptateur, alors votre réponse, fonctionne parfaitement.
Mote depuis que vous êtes à l'aide d'un curseur, je suppose que vous auriez à faire quelque chose comme mCursor.moveToPosition(position), etc. Content que vous l'avez travail!
OriginalL'auteur Robby Pond