OnItemCLickListener 在 ListView 自定义适配器中不起作用



我有两个活动。一个显示ListView中的所有产品。第二个活动在选定项目时运行。基本上,第二个活动应该在项目单击时启动,它应该打开PDF文件。

问题是它不会在项目选择上启动第二个活动。发布代码供您参考。

我的.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="wrap_content"
    android:layout_margin="5dp"
    android:background="@drawable/list_bacg"
    android:orientation="horizontal" >
    <ImageView
        android:id="@+id/productImage"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:layout_weight="0.25"
        android:adjustViewBounds="true"
        android:padding="5dp"
        android:src="@drawable/ic_launcher" />
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.55"
        android:orientation="vertical" >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:padding="5dp" >
            <!--
             <TextView 
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="wrap_content"
            android:text="Product Name"
            />
            -->
            <TextView
                android:id="@+id/prodName"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.5"
                android:text="Prod Name"
                android:textAppearance="?android:attr/textAppearanceMedium" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:paddingBottom="2dp"
            android:paddingLeft="5dp"
            android:paddingRight="5dp" >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Price: "
                android:textAppearance="?android:attr/textAppearanceSmall" />
            <TextView
                android:id="@+id/storePrice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/hori_line"
                android:text="Store Price"
                android:textAppearance="?android:attr/textAppearanceSmall" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:paddingBottom="2dp"
            android:paddingLeft="5dp"
            android:paddingRight="5dp" >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Offer Price: "
                android:textAppearance="?android:attr/textAppearanceSmall" />
            <TextView
                android:id="@+id/offerPrice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Offer Price"
                android:textAppearance="?android:attr/textAppearanceSmall" />
        </LinearLayout>
        <RatingBar
            android:id="@+id/ratingbar_prod"
            style="?android:attr/ratingBarStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="5dip" />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:padding="5dp" >
            <!--
              <TextView 
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="wrap_content"
            android:text="Category Name"
            />
            -->
            <TextView
                android:id="@+id/storeName"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.5"
                android:text="Store Name"
                android:textAppearance="?android:attr/textAppearanceSmall" />
        </LinearLayout>
    </LinearLayout>
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="0.2"
        android:orientation="horizontal" >
        <EditText
            android:id="@+id/prodCount"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/pc_edit_b"
            android:inputType="number" />
    </LinearLayout>
</LinearLayout>

这是我想在ListView上设置的自定义视图。

这是代码文件。

    listView = (ListView)rootView.findViewById(R.id.lv);
    List<StoreProducts> objects = new ArrayList<StoreProducts>();
    storeInfoAdapter = new    StoreInfoAdapter(getActivity(),android.R.layout.simple_list_item_1,objects);
    listView.setAdapter(storeInfoAdapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            Log.e("Click", "Click");
            StoreProducts productDetails = (StoreProducts) parent.getItemAtPosition(position);
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
             fragmentTransaction.setCustomAnimations(R.anim.ani_out,R.anim.ani_in);
            fragmentTransaction.replace(R.id.frame_container,new                ProductDescFragment(productDetails));
            fragmentTransaction.addToBackStack("All Products");
            fragmentTransaction.commit();
         }
       });

android:focusable="false"> 添加到每个自定义布局元素。 例如,您的自定义布局元素

<EditText 
 android:id="@+id/prodCount"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@drawable/pc_edit_b"
 android:inputType="number"
 android:focusable="false" />

试试

AdapterView.OnItemClickListener()

我也有类似的问题。我在视图中有一个复选框。删除复选框后,项目点击侦听器工作。今天,我在视图中尝试了EditText。同样的问题 在项目点击侦听器未调用,从视图中删除编辑文本它的工作。

最新更新