[英]OnItemClickListener not working with Custom ListView adapter
[英]OnItemCLickListener not working in ListView custom adapter
我有兩個活動。 一個顯示所有產品在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()
我有類似的問題。 我在視圖中有一個復選框。 刪除復選框后,onItemClickListener起作用了。 今天,我在視圖中嘗試了EditText。 相同的問題onItemClickListener未被調用,從它起作用的視圖中刪除EditText。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.