java - Android Adapter 中的 overridePendingTransition 方法

标签 java android

我想在我的自定义适配器中使用overridePendingTransition方法,不幸的是,这个方法没有检测到!
我的使用方法如下:

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

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

我的自定义适配器代码:

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 的一种方法。您已经将 Activity 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;
  }

关于java - Android Adapter 中的 overridePendingTransition 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31110275/

相关文章:

java - 在 Java 中是否有折叠多个事件的标准技术和/或示例?

java - 如何在 Wicket 中测试链接的文本

java - Android:如何将字符串转换为日期

java - Android:从 UncaughtExceptionHandler 继续工作

android - 如何在 Android 中的声音文件上添加音效

android - Xamarin Android 使用自定义皮肤和点击事件从数据库构建自定义动态按钮

java - 如何重置嵌套 while 循环中的值?

Java expectj通过跳转框执行linux命令

android - Viewpager2 左右滚动预览不起作用

android - 在 Android 内核中执行 insmod 时没有这样的文件或目录错误