[英]overridePendingTransition method in Adapter in Android
i want use overridePendingTransition
method in my Custom Adapter, unfortunately, this method does not detect!!! 我想在我的自定义适配器中使用
overridePendingTransition
方法,不幸的是,该方法无法检测!
I use it as follows: 我使用它如下:
v.getContext().overridePendingTransition(R.anim.fade_out, R.anim.fade_in);
I started to put activity into an adapter,for this reason I want to run this method in Adapter. 我开始将活动放入适配器,因此,我想在适配器中运行此方法。
my custom adapter codes : 我的自定义适配器代码:
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);
}
});
}
}
my custom adapter new codes : 我的自定义适配器新代码:
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);
}
});
}
}
How do i use this ( overridePendingTransition ) method in the adapter? 如何在适配器中使用此( overridePendingTransition )方法?
overridePendingTransition
is a method of the Activity
. overridePendingTransition
是Activity
的方法。 You already have the activity context
as member variable. 您已经具有活动
context
作为成员变量。 You could use that. 您可以使用它。
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);
Also make sure you are initializing activity
in constructor. 还要确保要在构造函数中初始化
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.