我想从左到右打开活动滑动...按钮点击.. 我创建anim xml
使用此功能滑动动画,其目的是
signupbtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent s=new Intent(getApplicationContext(),SignUpActivity.class);
startActivity(s);
((Activity) getApplicationContext()).overridePendingTransition(R.anim.slidleft_to_right,R.anim.slideright_to_left);
}
});
但我的应用程序崩溃并在Logcate中给出错误
09-05 14:31:39.761: E/AndroidRuntime(15501): java.lang.ClassCastException: android.app.Application cannot be cast to android.app.Activity
09-05 14:31:39.761: E/AndroidRuntime(15501): at com.example.bounced.MainActivity$2.onClick(MainActivity.java:41)
09-05 14:31:39.761: E/AndroidRuntime(15501): at android.view.View.performClick(View.java:4084)
09-05 14:31:39.761: E/AndroidRuntime(15501): at android.view.View$PerformClick.run(View.java:16987)
09-05 14:31:39.761: E/AndroidRuntime(15501): at android.os.Handler.handleCallback(Handler.java:615)
09-05 14:31:39.761: E/AndroidRuntime(15501): at android.os.Handler.dispatchMessage(Handler.java:92)
答案 0 :(得分:0)
您无法将ApplicationContext(大多数情况下是类应用程序)强制转换为Activity。
只需删除该部分即可:
startActivity(s);
overridePendingTransition(R.anim.slidleft_to_right,R.anim.slideright_to_left);
答案 1 :(得分:0)
只需将您的代码更改为:
signupbtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent s=new Intent(getApplicationContext(),SignUpActivity.class);
startActivity(s);
overridePendingTransition(R.anim.slidleft_to_right,R.anim.slideright_to_left);
}
});
<强>更新强>
for backpress:
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
overridePendingTransition(R.anim.slideinfromleft, R.anim.slideouttoright);
}
答案 2 :(得分:0)
你需要res / anim.xml来支持从左到右的动画
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate android:fromXDelta="-100%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700"/>
</set>
.class文件
this.overridePendingTransition(R.anim.animation_enter, R.anim.animation_leave);
(OR)
this.overridePendingTransition(R.anim.slidleft_to_right,R.anim.slideright_to_left);