3

さて、これは ListView と ListActivity の問題に関する他の問題のように聞こえるかもしれませんが、そうではありません。先週行ったように、すべての投稿を検索して解決策を見つけようとしています。自分。カスタム セレクターとGetView Vsを介して ListView アイテムの背景を既に試しました。カスタム CursorAdapter の BindView? 他のすべての可能なブログ サイト...

さて、問題はありませんが、1つのリストビューでは選択/起動イベントが許可されず、2.アイテムがクリックされたときに行のハイライトが変更されません。標準TestActivity拡張ListActivityがあり、カスタムを実装しましたTestCursorAdapter extends SimpleCursorAdapter

今、私が持っているもののXML側test_list_view.xmlと2番目のものrow_view.xmlで、上記の回答に続いて、として実装selectorrow_selector.xmlます。ただし、問題は、行がクリックまたはフォーカス イベントを受け入れないことです。何かが起こっているかどうかを示す基本的なトーストを実装しました

@Override
protected void onListItemClick(ListView l, View v , int postion, long idontnow){
    Toast.makeText(getApplicationContext(), "Hello World",  Toast.LENGTH_SHORT ).show();
}

test_list_view.xml の一部

<ListView android:id="@android:id/list" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawSelectorOnTop="true" 
    android:cacheColorHint="#00000000"
    android:focusable="true" 
    android:listSelector="@color/row_selector" 
    android:background="@color/Transparent"/>

selector.xml の一部 (基本的に、上記のリンクのいずれかからコピーして貼り付けます)

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" 
        android:drawable="@color/Transparent" />
    <item 
        android:state_focused="true"
        android:state_enabled="false"
        android:state_pressed="true" 
        android:drawable="@color/green" />
    <item 
        android:state_focused="true"
        android:state_enabled="false"      
        android:drawable="@color/green" />
    <item 
        android:state_focused="true"
        android:state_pressed="true" 
        android:drawable="@color/blue" />
    <item 
        android:state_focused="false"
        android:state_pressed="true" 
        android:drawable="@color/blue" />
    <item 
        android:state_focused="true" 
        android:drawable="@color/green" />
    <item 
        android:state_selected="true" 
        android:drawable="@color/blue" />
    <item 
        android:drawable="@color/Transparent" />
</selector>

私は知っているすべてのオプションに従いましたが、まだ何もしていません。唯一の大きな違いは、私が使用しているgetView代わりに使用している人bindViewです。

どんな助けでも大歓迎です。

前もって感謝します。

サンジ

4

2 に答える 2

1

android:focusable="true"からを削除することをお勧めしますListView

selectorさらに、に表示される項目の背景色としてを使用できますListView。また、これらの要素が呼び出しonClickなどを行っていないことを確認し、クリック イベントを処理onTouchさせます。ListView

これが役立つことを願っています

編集:

アイテムの使用を選択する際の問題について

lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            yourMethod();
        }
    });
于 2011-03-31T15:19:14.130 に答える
1

raukodraug の提案に従って、 ListView OnItemClickListener Not Responding を投稿しますか?

前述の使用bindView方法としての別の事実、私は使用しました

view.setClickable(true);
view.setFocusable(true); 

黄色でハイライト表示された領域とImageView. 私はこれを理解できるはずです、ありがとう

ここに画像の説明を入力

編集済み

ああ *%#$ 解決しました。RelativeLayouts を設定する必要がありましたAdd State from Children = true;

于 2011-04-02T06:50:54.513 に答える