0

listItemClick のリスト項目内のビューを膨らませています。リスト項目にはチェック ボックスが含まれています。チェック ボックスをクリックすると、2 つまたは 3 つの編集テキスト フィールドとボタンを含む線形レイアウトがそのリスト ビューに拡張されます (カーソル アダプタの getView メソッドによって実行され、拡張ビューが動的に作成されます)。

リスト ビューはアイテム クリック リスナーに登録されます。レイアウトがインフレートされた後、特定のアイテムに対して onItemClick リスナーが呼び出されません。助けて

私のgetViewコード

TextView text1  = (TextView) view.findViewById (R.id.text);
        text1.setText("text");

        CheckBox cb = (CheckBox)view.findViewById(R.id.checkBoxList) ;
        cb.setTag(tag);
        cb.setChecked(false);

        if ( chekedIdVector.contains(cursor.getString(cursor.getColumnIndex(ID) )))
        {
            cb.setChecked(true);
        }

        if( !idVector.isEmpty () )
        {
            LinearLayout ll =(LinearLayout)view.findViewById(R.id.layoutinCell);

            if ( ((String)idVector.lastElement()).equals(cursor.getString(cursor.getColumnIndex(_ID) )) )
            {

                if (ll.getChildCount() == 0 )
                {
                    ll.removeAllViews() ;
                    ll.addView(dynamicallyCreatedView); // view dynamically created with 2/3 textviews and buttons
                }

                ll.setVisibility(View.VISIBLE); 
                view.requestFocus() ;
            }

            else
            {
                ll.removeAllViews() ;
            }
        }

        return view  ;

Ps: フォーカスを変更したリスナーを試し、チェック ボックスを xml でフォーカス不可に設定しました。

4

1 に答える 1

0

他のすべてが失敗した場合は、ExpandableListView (http://developer.android.com/reference/android/widget/ExpandableListView.html) を使用するか、最初から android:visibility="GONE" で項目を膨らませてから設定することを検討してください。それらを膨らませる代わりに「VISIBLE」として。

于 2012-08-31T12:25:19.987 に答える