Android ViewPager和FragmentTransaction未按预期工作

Android ViewPager和FragmentTransaction未按预期工作,android,Android,我有一个ListView,它是根据JSON调用的结果填充的,列表视图是正确构建的,数据显示得很好;但是,我似乎在列表项的onClick句柄方面遇到了问题 每次单击都会调用下面的回调,但新片段仅在第二次单击时加载。由此产生的行为是,我需要单击一个项目两次,以使其进入下一个屏幕 我想在第一次单击时前进,在第二次单击时返回 public void onItemClick(AdapterView<?> av, View v, int i, long l){ System.out.pr

我有一个ListView,它是根据JSON调用的结果填充的,列表视图是正确构建的,数据显示得很好;但是,我似乎在列表项的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();
}
public-void-onItemClick(AdapterView av、View v、int i、long l){
System.out.println(“项目点击”);
SearchResult dsr=(SearchResult)av.getItemAtPosition(i);
最终ProductDetailFragment=新ProductDetailFragment();
fragment.product_id=dsr.id;
FragmentTransaction=null;
事务=getFragmentManager().beginTransaction();
transaction.replace(R.id.container,fragment);//ViewPager的id
transaction.addToBackStack(空);
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>

我无法解决这个问题,但我可以通过为每次单击创建新活动,从应用程序中实现相同的行为


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

如果我没有错的话。当一个项目被点击两次时,你想移动到下一个片段吗?@Arslan-我希望它在第一次点击时前进。一旦你点击,你将被提升。那么,您打算在哪里进行第二次单击?能否发布列表项行的xml?是的,这可能会有帮助。@Arslan这就是问题所在,它不会在第一次单击时前进,而是需要两次单击才能前进。正在创建片段[嗯,在第一次单击之后调用onCreate,但是在第二次单击之前不会显示任何内容。]