ViewPager和FragmentTransaction无法按预期工作

时间:2015-11-23 04:25:31

标签: android

我有一个正在从JSON调用的结果中填充的ListView,列表视图正在正确构建,并且数据显示正常;但是,我似乎遇到列表项的onClick句柄有问题。

每次单击都会调用以下回调,但新片段仅在第二次单击时加载。由此产生的行为是我需要两次单击一个项目才能使其前进到下一个屏幕。

我想在第一次点击时前进,然后再次点击。

public void onItemClick(AdapterView<?> av, View v, int i, long l){
    System.out.println("Item Click");
    SearchResult dsr = (SearchResult)av.getItemAtPosition(i);
    final ProductDetailFragment fragment = new ProductDetailFragment();
    fragment.product_id = dsr.id;
    FragmentTransaction transaction = null;
    transaction = getFragmentManager().beginTransaction();
    transaction.replace(R.id.container, fragment); //id of ViewPager
    transaction.addToBackStack(null);
    transaction.commit();
}

详细信息项XML是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="50dp"
    android:minHeight="50dp">

<ImageView
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:id="@+id/imageSearchResultItem" />

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sample"
        android:id="@+id/textView"
        android:layout_weight="1" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Thing"
        android:id="@+id/textView2"
        android:layout_weight="1" />
</LinearLayout>

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

我无法解决问题,但我通过为每次点击创建新活动,从应用程序中获得了相同的行为。

虽然这不是一个解决方案,但我认为这可能有助于其他开发人员在这可能是一个不错的选择的情况下解决他们的问题。