popBackStack()并在Adapter中传递参数

时间:2016-05-23 10:31:57

标签: android android-fragments android-recyclerview

我想在RecyclerView中点击一行时返回上一个片段。那么如何在我的适配器中调用该函数呢?

 @Override
    public void onBindViewHolder(final CountryViewHolder holder, int position) {
        String country = countries.get(position);
        holder.tvCountrySelection.setText(country);
        holder.tvCountrySelection.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                holder.tvCountrySelection.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_tick_17, 0);
                //I want to run popBackStack() here and send String country to previous fragment.
            }
        });
    }

2 个答案:

答案 0 :(得分:2)

  • 通过适配器构造函数传递活动上下文

    来自片段

     new YourAdaptor(getActivity())
    

    来自活动

    new YourAdaptor(this)
    
  • 处理适配器类中的上下文

    globalinstance = passedContext;
    
  • 使用该上下文,您可以在点击事件中弹出片段,如

    ((YourActivity)context).getSupportFragmentManager().popBackStackImmediate();
    

答案 1 :(得分:2)