如何覆盖活动上下文的转换?
Posted
技术标签:
【中文标题】如何覆盖活动上下文的转换?【英文标题】:How to override the transition from an activity's context? 【发布时间】:2014-04-15 15:44:37 【问题描述】:我想从以下内容覆盖从页面到页面的转换:在当前活动中,我正在使用当前活动的上下文在后台运行另一个类的方法。从该课程中,我打开了 2 个可能活动中的 1 个(使用上下文,但不直接通过我的初始活动)。有没有办法覆盖从初始活动到两个新活动的页面转换?因为overridePendingTransition
只能在活动对象上运行,所以我不能在这两种情况下都调用此方法,因为这些情况不是实际活动的一部分。
抱歉,如果这不是很清楚,请随时提出可以解决任何问题的问题。我对意图和上下文的定义仍然不是 100%。
//depending on if there is a warning it will either display the warning screen or skip it
if(dairy)
Intent intent_warn = new Intent(context, WarningScreen.class);
intent_warn.putExtra("Name", str_name);
intent_warn.putExtra("Size", str_size);
intent_warn.putExtra("Price", str_price);
intent_warn.putExtra("Carbs", str_carbs);
intent_warn.putExtra("Protein", str_protein);
intent_warn.putExtra("Fiber", str_fiber);
intent_warn.putExtra("Sugar", str_sugar);
intent_warn.putExtra("SatFat", str_satFat);
intent_warn.putExtra("TotFat", str_totFat);
intent_warn.putExtra("Cholesterol", str_cholesterol);
intent_warn.putExtra("Sodium", str_sodium);
intent_warn.putExtra("Potassium", str_potassium);
intent_warn.putExtra("Calories", str_calories);
intent_warn.putExtra("Warning", "Contains Dairy");
intent_warn.putExtra("WarningRed", true);
Log.e("Warning",intent_warn.getExtras().getString("Warning"));
context.startActivity(intent_warn);
context.overridePendingTransition(R.layout.fade_in, R.layout.fade_out);
else
Intent intent_menu = new Intent(context, DisplayScreen.class);
intent_menu.putExtra("Name", str_name);
intent_menu.putExtra("Size", str_size);
intent_menu.putExtra("Price", str_price);
intent_menu.putExtra("Carbs", str_carbs);
intent_menu.putExtra("Protein", str_protein);
intent_menu.putExtra("Fiber", str_fiber);
intent_menu.putExtra("Sugar", str_sugar);
intent_menu.putExtra("SatFat", str_satFat);
intent_menu.putExtra("TotFat", str_totFat);
intent_menu.putExtra("Cholesterol", str_cholesterol);
intent_menu.putExtra("Sodium", str_sodium);
intent_menu.putExtra("Potassium", str_potassium);
intent_menu.putExtra("Calories", str_calories);
intent_menu.putExtra("Warning", "Contains no allergens");
intent_menu.putExtra("WarningRed", false);
Log.e("Warning",intent_menu.getExtras().getString("Warning"));
context.startActivity(intent_menu);
context.overridePendingTransition(R.layout.fade_in, R.layout.fade_out);
我尝试使用context.overridePendingTransition...
,但这不能在上下文中完成。但是,当从另一个 Activity 而非上下文项运行时,以下代码会起作用:
startActivity(letsMenu);
overridePendingTransition(R.layout.fade_in, R.layout.fade_out);
【问题讨论】:
一次开始 2 个活动?真的吗? 一次只运行一个。基于为 if 语句打勾的标志。 【参考方案1】:只需像这样包装上下文:
((Activity)context).overridePendingTransition(R.layout.fade_in, R.layout.fade_out);
【讨论】:
以上是关于如何覆盖活动上下文的转换?的主要内容,如果未能解决你的问题,请参考以下文章