繁体   English   中英

Android中适配器中的overridePendingTransition方法

[英]overridePendingTransition method in Adapter in Android

我想在我的自定义适配器中使用overridePendingTransition方法,不幸的是,该方法无法检测!
我使用它如下:

v.getContext().overridePendingTransition(R.anim.fade_out, R.anim.fade_in);

我开始将活动放入适配器,因此,我想在适配器中运行此方法。

我的自定义适配器代码:

public class levels_card_adapter extends
        RecyclerView.Adapter<levels_card_adapter.ViewHolder> {

    Context mContext;
    Activity activity = (Activity) mContext;

    private static String[] adapter_levels_number;

    public levels_card_adapter(String[] adapter_levels_num_data) {
        adapter_levels_number = adapter_levels_num_data;


    }

    @Override
    public levels_card_adapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                             int viewType) {

        View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(
                R.layout.levels_recycler_layout, null);


        ViewHolder viewHolder = new ViewHolder(itemLayoutView);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int position) {

        viewHolder.adapter_levels_text.setText(adapter_levels_number[position].toString());

        viewHolder.adapter_levels_version = adapter_levels_number[position];
    }
    @Override
    public int getItemCount() {
        return adapter_levels_number.length;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {

        public TextView adapter_levels_text;

        public String adapter_levels_version;


        public ViewHolder(View itemLayoutView) {
            super(itemLayoutView);

            adapter_levels_text = (TextView) itemLayoutView
                    .findViewById(R.id.level_thumnail_text);


            itemLayoutView.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                    Intent question_page_intent = new Intent(v.getContext(), com.tellfa.braingame.activities.question_Page.class);
                    v.getContext().startActivity(question_page_intent);
                    v.getContext().overridePendingTransition(R.anim.fade_out, R.anim.fade_in);
            }
        });
    }
}

我的自定义适配器新代码:

public class levels_card_adapter extends
        RecyclerView.Adapter<levels_card_adapter.ViewHolder> {

    Context mContext;
    Activity activity = (Activity) mContext;

    private static String[] adapter_levels_number;

    public levels_card_adapter(Activity activity, String[] adapter_levels_num_data) {
        this.activity = activity;
        adapter_levels_number = adapter_levels_num_data;
    }

    @Override
    public levels_card_adapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                             int viewType) {

        View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(
                R.layout.levels_recycler_layout, null);


        ViewHolder viewHolder = new ViewHolder(itemLayoutView);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int position) {

        viewHolder.adapter_levels_text.setText(adapter_levels_number[position].toString());

        viewHolder.adapter_levels_version = adapter_levels_number[position];

    }

    @Override
    public int getItemCount() {
        return adapter_levels_number.length;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {

        public TextView adapter_levels_text;

        public String adapter_levels_version;



        public ViewHolder(View itemLayoutView) {
            super(itemLayoutView);

            adapter_levels_text = (TextView) itemLayoutView
                    .findViewById(R.id.level_thumnail_text);


            itemLayoutView.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                    Intent question_page_intent = new Intent(v.getContext(), com.tellfa.braingame.activities.question_Page.class);
                    v.getContext().startActivity(question_page_intent);
                    activity.overridePendingTransition(R.anim.fade_out, R.anim.fade_in);

                }
            });
        }

    }

如何在适配器中使用此( overridePendingTransition )方法?

overridePendingTransitionActivity的方法。 您已经具有活动context作为成员变量。 您可以使用它。

Intent question_page_intent = new Intent(v.getContext(), com.tellfa.braingame.activities.question_Page.class);
activity.startActivity(question_page_intent);
activity.overridePendingTransition(R.anim.fade_out, R.anim.fade_in);

还要确保要在构造函数中初始化activity

public levels_card_adapter(Activity activity,String[] adapter_levels_num_data) {
   this.activity  =activity;    
   adapter_levels_number = adapter_levels_num_data;
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM