0

ここ数日からこの問題を解決しようとしましたが、成功しませんでした。私はすでに利用可能な多くのソリューションを経験しましたが、私にとってはうまくいきません。顧客リスト ビューとカスタム行があります。リストビューにデータを入力するために、単純なカーソルアダプターを使用しています。カスタム行には、3 つの画像ビューと 1 つのテキスト ビューがあります。ビューの 1 つはクリック可能で、ポップアップ ウィンドウを開き、行が次のフラグメントに移動します。私の問題は、行全体を選択するまでクリック可能な画像が応答しないことです。行を選択するとクリック可能になります。

     <ImageView
         android:id="@+id/iv_LvRow_speedmap_PIcon"
         android:layout_width="0dip"
         android:layout_height="50dip"
         android:layout_weight="0.20"
         android:contentDescription="@string/todo"
         android:paddingLeft="10dip"
         android:src="@drawable/arrow4" />

     <TextView
         android:id="@+id/tv_LVRow_SpeedMap_PDesc"
         android:layout_width="0dip"
         android:layout_height="50dip"
         android:layout_weight="0.60"
         android:ellipsize="none"
         android:gravity="center_vertical|center_horizontal"
         android:scrollHorizontally="true"
         android:singleLine="true"
         android:text="@string/textview"
         android:textColor="@color/black"
         android:textSize="14sp" />

      <ImageView
          android:id="@+id/ib_LvRow_SpeedMap_InfoIcon"
          android:layout_width="0dip"
          android:layout_height="50dip"
          android:layout_weight="0.10"
          android:clickable="true"
          android:contentDescription="@string/todo"
          android:duplicateParentState="false"
          android:focusable="false"
          android:focusableInTouchMode="false"
          android:src="@drawable/info_icon" />

     <ImageView
         android:id="@+id/imgView_ArrowImg_speedMap"
         android:layout_width="0dip"
         android:layout_height="50dip"
         android:layout_weight="0.10"
         android:contentDescription="@string/todo"
         android:src="@drawable/arrow4" />
</LinearLayout>

ListView lv = getListView();
    //  lv.setItemsCanFocus(true);
    //  lv.setClickable(true);
    //  lv.setFocusable(true);
        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View v, int arg2,
                    long arg3) {

                final String where = "id = " + Long.toString(arg3);
                ImageView iv = (ImageView) v
                        .findViewById(R.id.ib_LvRow_SpeedMap_InfoIcon);
                // iv.setClickable(true);
                // iv.setFocusable(true);
                iv.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        System.out.println("id2");
                        String[] projection = { "name", "description" };
                        String selection = where;
                        Cursor cursor = null;
                        cursor = getActivity().getContentResolver().query(
                                DatabaseContentProvider.CONTENT_URI_CONCERNS,
                                projection, selection, null, null);
                        cursor.moveToFirst();
                        if (cursor.getCount() > 0) {
                            String name = cursor.getString(cursor
                                    .getColumnIndex("name"));

                            System.out.println("name" + name);
                            String description = cursor.getString(cursor
                                    .getColumnIndex("description"));
                            System.out.println("description" + description);
                            info(name, description, v);

                        }

                    }
                });

            }
        });
4

1 に答える 1

1

長い闘争の末、ついに私の問題を解決しました。次のリンクは私を大いに助けました。

リストビューの複数クリック可能なゾーン。

http://wiresareobsolete.com/wordpress/tag/clickable/

于 2012-10-14T01:37:30.783 に答える