我正在使用Xamarin,AppCompat v4和v7包(Xamarin.Android.Support.v7.AppCompat.23.0.1.3)创建Android应用程序。当我完成第二个活动后退按钮时,我需要反转场景过渡动画。我找到了一个解决方案here。所以,我在FinishAfterTransition
派生的类中使用OnBackPressed
方法覆盖Android.Support.V7.App.AppCompatActivity
:
public class BaseToolbarActivity : AppCompatActivity
{
public override void OnBackPressed()
{
base.OnBackPressed();
FinishAfterTransition();
}
}
当我按下BaseToolbarActivity
子活动的后退按钮时,我收到以下错误。
10-20 12:41:13.815 E/AndroidRuntime( 9557): FATAL EXCEPTION: main
10-20 12:41:13.815 E/AndroidRuntime( 9557): Process: GetTruck.ClientApp, PID: 9557
10-20 12:41:13.815 E/AndroidRuntime( 9557): java.lang.NoSuchMethodError: no method with name='finishAfterTransition' signature='()V' in class Landroid/app/Activity;
10-20 12:41:13.815 E/AndroidRuntime( 9557): at md5b2985d08cc2bafff83c57ef84572ed3f.CreateOrderActivity.n_onCreate(Native Method)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at md5b2985d08cc2bafff83c57ef84572ed3f.CreateOrderActivity.onCreate(CreateOrderActivity.java:28)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at android.app.Activity.performCreate(Activity.java:5411)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at android.app.ActivityThread.access$800(ActivityThread.java:139)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at android.os.Handler.dispatchMessage(Handler.java:102)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at android.os.Looper.loop(Looper.java:149)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at android.app.ActivityThread.main(ActivityThread.java:5257)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at java.lang.reflect.Method.invokeNative(Native Method)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at java.lang.reflect.Method.invoke(Method.java:515)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:633)
10-20 12:41:13.815 E/AndroidRuntime( 9557): at dalvik.system.NativeStart.main(Native Method)
无论我在OnBackPressed
内调用方法的顺序如何,我的应用程序无论如何都会崩溃。我也尝试重建项目,在其他方法中调用FinishAfterTransition
,都是一样的。谷歌搜索告诉我什么。看来我是地球上唯一遇到过这个错误的人。我做错了什么?
答案 0 :(得分:1)
FinishAfterTransition实际上是一个仅在API 21及更高版本(http://developer.android.com/reference/android/app/Activity.html#finishAfterTransition())的Activity(不是AppCompatActivity)方法,因此如果您在API 21以下的任何内容中运行该应用程序,您将遇到该错误,因为它不存在。
不幸的是,因为它不是AppCompatActivity的一部分,所以你必须找到另一个解决方案来实现你想要的结果(或者只在API> = 21上调用它)。
希望有所帮助!