Sur une application Android ciblant les API 11 à 18, j'airempli dynamiquement un ListView à l'aide d'un tableau de chaînes et ajouté un écouteur à chaque ligne. Le texte couvre généralement environ 50% d'une ligne seulement. Le problème est que si je clique sur le texte même, l'action onItemClick est déclenchée, mais si je clique sur la partie vide de la ligne, ce n'est pas le cas.
Ma question est la suivante: comment puis-je ajouter l'auditeur à la totalité de la zone / vue de chaque ligne?
public class MainActivity extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
...
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.activity_list_item, my_array);
ListView listview = (ListView) findViewById(R.id.listView1);
listview.setAdapter(adapter);
// add listener
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Log.d(TAG, "position=" + position);
}
});
activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android1="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ListView
android:id="@+id/listView1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight=".80"
>
</ListView>
activity_list_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/my_textview"
android:textSize="35sp"
/>
Réponses:
8 pour la réponse № 1Met le layout_width
du TextView
dans activity_list_item to match_parent
.