1

TextViews を使用して ListView を作成しようとしています。各テキストビューをクリックできるようにし、その位置に基づいてフラグメントがプルアップされるようにします。ただし、 itemOnClickListener は呼び出されていないようです。

        mDrawerList = (ListView) findViewById(R.id.devices_drawer);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList.setAdapter(new ArrayAdapter<String>(this,
            R.layout.drawer_list_item, drawerInfo));
    mDrawerList.setItemsCanFocus(false);
    mDrawerList.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                final int pos, long id) {
            Log.d(TAG, "CLICKED " + pos);
            selectDevice(pos);
        }
    });

リスト項目の xml は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/deviceText"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

リスト ビュー xml ファイル:

<android.support.v4.widget.DrawerLayout     xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ListView
    android:id="@+id/devices_drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="left"
    android:background="#111"
    android:choiceMode="singleChoice"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp" />

<FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</android.support.v4.widget.DrawerLayout>
4

4 に答える 4

5

それはあなたのxmlドロワー全体です(ナビゲーションドロワーをやろうとしていると思います)?親レイアウトがある場合は、それ以外のandroid:descendantFocusability="blocksDescendants"場合はテキストビューをレイアウトでラップする必要があります (アイテムに複雑な UI がない場合は、LinearLayout で十分です)。new OnItemClickListenerAdapterView.OnItemClickListerner? _

(優れたハウツーhttp://www.vogella.com/articles/AndroidActionBar/article.html#actionbar_navigation_drawer )

于 2013-08-13T17:11:04.510 に答える
0

を使用している理由はありますmDrawerList.setItemsCanFocus(false);か?アイテム レイアウトにフォーカス可能なアイテムがないため、その呼び出しを削除しても安全です。その後は正常に動作するはずです。

于 2013-08-13T18:17:15.293 に答える
0

リスト内のリスト項目については、以下の属性を設定する必要があります

android:focusable="false" android:focusableInTouchMode="false"

于 2015-01-29T06:34:39.143 に答える