如何覆盖活动上下文的转换?

时间:2014-03-11 20:18:00

标签: android android-intent android-activity transition android-context

我想要覆盖以下内容从页面到页面的转换:在当前的Activity中,我使用当前活动的上下文在后台运行另一个类的方法。从该课程开始,我打开了2个可能的活动中的一个(使用上下文,但不是直接通过我的初始活动)。有没有办法覆盖从初始活动到两个新活动的页面转换?因为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);

1 个答案:

答案 0 :(得分:0)

只需包装上下文:

((Activity)context).overridePendingTransition(R.layout.fade_in, R.layout.fade_out);