【发布时间】:2014-12-13 06:48:11
【问题描述】:
我有两个活动。一个显示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();
}
});
【问题讨论】:
-
onItemClick是否成功接收到触摸事件? -
不....我不这么认为,因为我在这个方法中放了一个日志并且它没有打印
-
其他东西可能正在消耗触摸事件,可能是
EditText,但我不清楚ListView在您的整体布局中的哪个位置。 -
listview 在 mainLayout 中。
标签: android android-listview onitemclicklistener