【问题标题】:android animation switching UI and the active classandroid动画切换UI和活动类
【发布时间】:2012-01-05 23:46:51
【问题描述】:

所以我正在托盘上使用来自 android 示例 2,0,1 的滑动动画但是当我但是当我切换 UI 时我也不想开始使用使用相同的新类/java 文件插入这是什么我已经装盘了

ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);

     // Set an animation from res/anim: I pick push left in
     vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.push_left_in));

     vf.showNext();

            startActivity(i);

但它因空点异常而崩溃

01-06 00:20:21.373:E/AndroidRuntime(2982):致命异常:主要 01-06 00:20:21.373: E/AndroidRuntime(2982): java.lang.RuntimeException: 无法启动活动 ComponentInfo{simon.vestergaard.note.calender/simon.vestergaard.note.calender.NoteSelector}: java.lang 。空指针异常 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 android.app.ActivityThread.access$600(ActivityThread.java:122) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 android.os.Handler.dispatchMessage(Handler.java:99) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 android.os.Looper.loop(Looper.java:137) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 android.app.ActivityThread.main(ActivityThread.java:4340) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 java.lang.reflect.Method.invokeNative(Native Method) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 java.lang.reflect.Method.invoke(Method.java:511) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 01-06 00:20:21.373: E/AndroidRuntime(2982): at dalvik.system.NativeStart.main(Native Method) 01-06 00:20:21.373:E/AndroidRuntime(2982):由:java.lang.NullPointerException 引起 01-06 00:20:21.373: E/AndroidRuntime(2982): at simon.vestergaard.note.calender.NoteSelector.initilize(NoteSelector.java:65) 01-06 00:20:21.373: E/AndroidRuntime(2982): at simon.vestergaard.note.calender.NoteSelector.onCreate(NoteSelector.java:53) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 android.app.Activity.performCreate(Activity.java:4465) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 01-06 00:20:21.373: E/AndroidRuntime(2982): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919) 01-06 00:20:21.373: E/AndroidRuntime(2982): ... 还有 11 个

这是我的 oncreate

protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);

    //      setContentView(R.layout.noteselectorscreen);

            initilize();
    }

    private void initilize() {
            // TODO Auto-generated method stub
            Bback =(Button)findViewById(R.id.Bback);
            Bnew =(Button)findViewById(R.id.Bnew);
            LMain =(ListView) findViewById(R.id.LnoteSelector);
            tCatagoryName=(TextView)findViewById(R.id.TcatagoryName);
            TVtopText =(TextView)findViewById(R.id.TVtopText);


            Bback.setOnClickListener(this);
            Bnew.setOnClickListener(this);
            LMain.setOnItemClickListener(this);

            aa = new FancyAdapter();
            LMain.setAdapter(aa);
            FillListDataWithData();
            String caragorynameHeader =mainClass.getSelectedCategory();
            tCatagoryName.setText(""+caragorynameHeader);
            TVtopText.setText(R.string.app_name);

    }

应用程序正在创建第 65 行,其中 is Bback.setOnClickListener(this); 我怎样才能使这项工作?所以我也在更改活动类/正在使用的类??

【问题讨论】:

    标签: android xml


    【解决方案1】:

    如果我正确理解您的问题,您想在 2 个不同的活动之间制作动画,那么您不应该使用 ViewFlipper。 ViewFlipper 用于同一 Activity 中的 2 个不同视图。

    你应该使用

    startActivity(intent);
    overridePendingTransition(int enterAnim, int exitAnim);
    

    这将从第一个 Activity 动画到第二个,如果您希望从第二个 Activity 动画回到第一个 Activity,那么您需要覆盖第二个 Activity 中的后退按钮。

    @Override
    public void onBackPressed(){
        finish();
        overridePendingTransition(int enterAnim, int exitAnim);
    }
    

    至于空指针,你贴的代码显示

    //      setContentView(R.layout.noteselectorscreen);
    

    你需要取消注释这一行,不调用setContentView(layoutID),使用findViewById(layoutID)将返回null,这就是Bback为null的原因。

    【讨论】:

    • lol 刚刚发现 2 分钟前的代码,但答案是 ty
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    相关资源
    最近更新 更多