4

API 11 から 18 を対象とする Android アプリで、文字列の配列を使用して ListView を動的に設定し、各行にリスナーを追加しました。通常、テキストは行の約 50% のみをカバーします。問題は、実際のテキストをクリックすると onItemClick アクションが発生するのに、行の空白部分をクリックすると発生しないことです。

私の質問は、各行の領域/ビュー全体にリスナーを追加するにはどうすればよいですか?

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"
/>
4

1 に答える 1

9

activity_list_itemの をlayout_widthに設定します。TextViewmatch_parent

于 2013-09-03T01:43:00.697 に答える