android动画切换UI和活动类

时间:2012-01-05 23:46:51

标签: android xml

所以即时通讯使用来自android sampels 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):at java.lang.reflect.Method.invokeNative(Native Method) 01-06 00:20:21.373:E / AndroidRuntime(2982):at java.lang.reflect.Method.invoke(Method.java:511) 01-06 00:20:21.373:E / AndroidRuntime(2982):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784) 01-06 00:20:21.373:E / AndroidRuntime(2982):at 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 more

这是我的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);

    }

该应用正在使用Bback.setOnClickListener(this)创建第65行; 我怎么能做这个工作?所以我也在使用活动类/正在使用的那个?

1 个答案:

答案 0 :(得分:1)

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

你应该使用

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

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

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

对于空指针,您发布的代码显示

//      setContentView(R.layout.noteselectorscreen);

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