Java Android适配器中的overridePendingTransition方法

Java Android适配器中的overridePendingTransition方法,java,android,Java,Android,我想在我的自定义适配器中使用重写PendingTransition方法,不幸的是,此方法无法检测 我的用法如下: v.getContext().overridePendingTransition(R.anim.fade_out, R.anim.fade_in); 我开始将活动放入适配器中,因此我希望在适配器中运行此方法 我的自定义适配器代码: public class levels_card_adapter extends RecyclerView.Adapter<lev

我想在我的自定义适配器中使用
重写PendingTransition
方法,不幸的是,此方法无法检测
我的用法如下:

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);
            }
        });
    }
}
公共类级别\u卡\u适配器扩展
RecyclerView.适配器{
语境;
活动活动=(活动)mContext;
私有静态字符串[]适配器\u级别\u编号;
公共级别\卡\适配器(字符串[]适配器\级别\数量\数据){
适配器\u级别\u编号=适配器\u级别\u编号\u数据;
}
@凌驾
公共级别\卡\适配器.ViewHolder onCreateViewHolder(视图组父级、,
int视图类型){
View itemLayoutView=LayoutFlater.from(parent.getContext()).inflate(
R.layout.levels\u recycler\u布局,空);
ViewHolder ViewHolder=新的ViewHolder(itemLayoutView);
返回视图持有者;
}
@凌驾
公共无效onBindViewHolder(ViewHolder ViewHolder,int位置){
viewHolder.adapter_levels_text.setText(adapter_levels_number[position].toString());
viewHolder.adapter_levels_version=适配器_levels_编号[位置];
}
@凌驾
public int getItemCount(){
返回适配器\u levels\u number.length;
}
公共静态类ViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图适配器\u级别\u文本;
公共字符串适配器\u级别\u版本;
公共视图持有者(视图项布局视图){
超级(itemLayoutView);
适配器\u级别\u文本=(文本视图)项目布局视图
.findviewbyd(R.id.level\u thumnail\u text);
itemLayoutView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent question\u page\u Intent=新意图(v.getContext(),com.tellfa.braingame.activities.question\u page.class);
v、 getContext().startActivity(问题\页面\意图);
v、 getContext().overridePendingTransition(R.anim.fade\u out,R.anim.fade\u 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);

                }
            });
        }

    }
公共类级别\u卡\u适配器扩展
RecyclerView.适配器{
语境;
活动活动=(活动)mContext;
私有静态字符串[]适配器\u级别\u编号;
公共级别\u卡\u适配器(活动活动,字符串[]适配器\u级别\u数量\u数据){
这个。活动=活动;
适配器\u级别\u编号=适配器\u级别\u编号\u数据;
}
@凌驾
公共级别\卡\适配器.ViewHolder onCreateViewHolder(视图组父级、,
int视图类型){
View itemLayoutView=LayoutFlater.from(parent.getContext()).inflate(
R.layout.levels\u recycler\u布局,空);
ViewHolder ViewHolder=新的ViewHolder(itemLayoutView);
返回视图持有者;
}
@凌驾
公共无效onBindViewHolder(ViewHolder ViewHolder,int位置){
viewHolder.adapter_levels_text.setText(adapter_levels_number[position].toString());
viewHolder.adapter_levels_version=适配器_levels_编号[位置];
}
@凌驾
public int getItemCount(){
返回适配器\u levels\u number.length;
}
公共静态类ViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图适配器\u级别\u文本;
公共字符串适配器\u级别\u版本;
公共视图持有者(视图项布局视图){
超级(itemLayoutView);
适配器\u级别\u文本=(文本视图)项目布局视图
.findviewbyd(R.id.level\u thumnail\u text);
itemLayoutView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent question\u page\u Intent=新意图(v.getContext(),com.tellfa.braingame.activities.question\u page.class);
v、 getContext().startActivity(问题\页面\意图);
活动。覆盖转换(R.anim.fade\u out,R.anim.fade\u in);
}
});
}
}

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

overridePendingTransition
活动的一种方法。您已经将活动
上下文
作为成员变量。您可以使用它

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);
还要确保您正在构造函数中初始化
活动

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

overridePendingTransition
与适配器无关,它是一种
Activity
方法。亲爱的兄弟,我告诉过你我添加到代码中的代码,但是这个词“Activity”显示错误!!!你可以编辑我的代码吗?thanksError不是静态的(Activity),而是静态的“this.Activity=Activity;”code cont accepttnx感谢您的帮助我亲爱的朋友将
私有静态字符串[]适配器\u级别\u编号;
更改为
私有字符串[]适配器\u级别\u编号;
。删除静态字符串