【发布时间】:2017-09-05 13:02:36
【问题描述】:
我有一个活动和两个片段。第一个是项目列表,第二个是详细视图。理想情况下,我想将 String id 从 Fragment 1 发送到 Fragment 2(单击项目时),以便对 API 执行新的详细信息查询。 但是,现在我很困惑,我只想了解在哪里设置 clicklistener。我试过了:
Fragment 1 的 onCreateView:
recyclerView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(activity,"Hello", Toast.LENGTH_SHORT).show();
Log.v("Fragment1", "CLICK !? CLICK !? CLICK !? ");
}
});
Fragment 1 的适配器 - onBindViewHolder
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context,"Hello", Toast.LENGTH_SHORT).show();
Log.v("Adapter", "CLICK !? CLICK !? CLICK !? ");
}
});
我的 activity_main.xml 只是一个 FrameLayout,我有单独的 xml,只有 RecyclerView,每个片段都有模板 xml
RecyclerView:
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"/>
我的片段 1 的线性布局中有这些(不确定是否相关)
android:clickable="true"
android:focusable="true"
谢谢!
【问题讨论】:
-
您不能将变量从一个片段传递到另一个片段。实现它的唯一方法是将变量存储在您的活动中并在您的第二个片段中获取它。在 MainActivity 中使用 getter 和 setter,这样您就可以轻松地设置和获取变量。