如何打开活动使用滑块动画从左到右

时间:2014-09-05 09:07:08

标签: android

我想从左到右打开活动滑动...按钮点击.. 我创建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)

3 个答案:

答案 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);