2

Listview のアダプター クラスでは、リスト項目ごとに setOnClickListener イベントを追加しました。しかし、リスト項目をタップするたびに、項目が強調表示されません。setOnClickListener イベントを削除すると、リスト アイテムの選択を簡単に確認できるようになります。問題を解決する方法を教えてください。

listAdapterのgetviewでこの部分を追加するとリストビューの項目選択色が来ない

holder.ContactNumber.setText(fitems.get(position).getContactName());

                convertView.setOnClickListener(new OnClickListener() {

                    public void onClick(View v) {


                        // TODO Auto-generated method stub

                        setSelectedItem(i);
                         Intent intent = 
                              new Intent(context, preview_screen.class);

                        context.startActivity(intent);
                    }
                });
4

4 に答える 4

5

リスト ビュー アイテム row_selector.xml のセレクターを re/drawable フォルダーに作成します このセレクターを背景として追加します listview_item.xml これは Android で使用されるデフォルトのセレクターで、カスタム セレクターを作成できます。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_pressed_yellow"
          android:state_pressed="true" />
    <item android:drawable="@drawable/button_focused_orange"
          android:state_focused="true" />
    <item android:drawable="@drawable/button_normal_green" />
</selector>

OnItemClickListener() コールバックを使用して、リストビュー アイテムのクリック イベントを処理します

listView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                Toast.makeText(getApplicationContext(),
                ""+position, Toast.LENGTH_SHORT).show();
            }
        });
于 2012-06-23T10:13:21.557 に答える
1
 // ListView Item Click Listener
            listView.setOnItemClickListener(new OnItemClickListener() {

                  @Override
                  public void onItemClick(AdapterView<?> parent, View view,
                     int position, long id) {

                   // ListView Clicked item index
                   int itemPosition     = position;

                   // ListView Clicked item value
                   String  itemValue    = (String) listView.getItemAtPosition(position);

                    // Show Alert 
                    Toast.makeText(getApplicationContext(),
                      "Position :"+itemPosition+"  ListItem : " +itemValue , Toast.LENGTH_LONG)
                      .show();

                  }

             }); 

リストビューリスナーでは、その例を使用します

于 2014-10-21T09:21:32.833 に答える
1

xmlファイルで行の背景を設定する必要があります...

この例を参照してください

drawable->bg_row.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/white" android:state_pressed="false" android:state_selected="false"/>
    <item android:drawable="@color/blue" android:state_pressed="true" android:state_selected="false"/>
    <item android:drawable="@color/blue" android:state_pressed="true" android:state_selected="true"/>

</selector>
于 2012-06-23T10:08:13.753 に答える
0

convertView に onClickListener を与えるという考えは、ListView がどのように機能するかではありません。このリスナーを設定しないでください。代わりに、onItemClickListener または onItemSelectListener (何をしたいかによって異なります) をリストビューに設定し、そこにコードを挿入します。

于 2012-06-23T10:20:14.833 に答える