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