Android RecyclerView Fragment 点击按钮显示另一个 Fragment 实现教程
在使用 RecyclerView 的 Fragment 中,可以通过以下步骤来实现点击按钮显示另一个 Fragment:
-
在 RecyclerView 的 Adapter 中为按钮添加点击事件监听器。
-
在点击事件监听器中,通过 FragmentTransaction 将需要显示的 Fragment 添加到 FragmentManager 中。
-
在需要显示的 Fragment 中,可以通过布局文件或代码创建需要显示的界面。
以下是示例代码:
在 RecyclerView 的 Adapter 中添加按钮点击事件监听器:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private Context context;
public MyAdapter(Context context) {
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// 绑定数据到 ViewHolder 上
holder.btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 点击按钮,显示另一个 Fragment
FragmentManager fragmentManager = ((FragmentActivity)context).getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.container, new AnotherFragment());
transaction.addToBackStack(null);
transaction.commit();
}
});
}
@Override
public int getItemCount() {
return 10;
}
static class ViewHolder extends RecyclerView.ViewHolder {
Button btn;
public ViewHolder(View itemView) {
super(itemView);
btn = (Button) itemView.findViewById(R.id.btn);
}
}
}
在需要显示的 Fragment 中添加布局文件或代码创建需要显示的界面:
public class AnotherFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.another_fragment_layout, container, false);
// 或者通过代码创建需要显示的界面
// TextView textView = new TextView(getActivity());
// textView.setText('Another Fragment');
// return textView;
return view;
}
}
在 RecyclerView 的 Fragment 中添加 RecyclerView 并设置 Adapter:
public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_fragment_layout, container, false);
RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setAdapter(new MyAdapter(getActivity()));
return view;
}
}
原文地址: https://www.cveoy.top/t/topic/oUwO 著作权归作者所有。请勿转载和采集!