ここ数日からこの問題を解決しようとしましたが、成功しませんでした。私はすでに利用可能な多くのソリューションを経験しましたが、私にとってはうまくいきません。顧客リスト ビューとカスタム行があります。リストビューにデータを入力するために、単純なカーソルアダプターを使用しています。カスタム行には、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);
}
}
});
}
});