如何显示另一个活动

时间:2011-06-30 05:04:16

标签: android android-activity

如何显示其他活动? 我想显示一个活动,其中有一个图像视图启动显示图像。我想显示只有5秒然后转到另一个activity.splash显示在模拟器中但另一个活动菜单没有显示。

这是我的代码:

com.basic.android;

import java.util.Timer;


import java.util.TimerTask;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

public class androidbasics extends Activity {
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);

}
public void toCallActivity() {
    TimerTask startNewActivity;
final Handler handler = new Handler();
final Timer timer = new Timer();


        startNewActivity = new TimerTask() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                handler.post(new Runnable() {
                    public void run() {

                        try {
                            timer.cancel();
                            startActivity(new Intent(androidbasics.this,menu.class));
                        } catch (Exception e) {
                            // TODO Auto-generated catch block


                        }

                    }
                });

            }

        };

        timer.schedule(startNewActivity, 0,5000);

    }
}

3 个答案:

答案 0 :(得分:0)

你没有调用callActivity()。所以你的新Activity不会出现在前面。写这样的。

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
    toCallActivity();

    }

答案 1 :(得分:0)

试试这个......

@Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        BackgroundTask b = new BackgroundTask();
        b.execute("Main");

    }
    /** Called when the activity is first created. */
    class BackgroundTask extends AsyncTask<String , Void, Void>
    {
        @Override
        protected void onPreExecute()
        {

            setContentView(R.layout.splash);
        } 
        @Override
        protected Void doInBackground(String... params) 
        {
            // TODO Auto-generated method stub
            int pause=5000;
            int interval =1000;
            int counter=0;
            while(counter<pause)
            {
                try
                {
                    Thread.sleep(interval);
                    counter+=interval;
                }
                catch(Exception e)
                {
                    System.out.println(e);
                }
            }
            return null;
        }
        @Override
        protected void onPostExecute(Void result) 
        {
            startActivity( new Intent(androidbasics.this,menu.class));
            androidbasics.this.finish();
        }


    }

答案 2 :(得分:0)

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Thread splashTread = new Thread() {
        @Override
        public void run() {
           try {
                    int waited = 0;
                    while(_active && (waited < _splashTime)) {
                    sleep(100);
                    if(_active) {
                        waited += 100;
                    }
                }
            } 
            catch(InterruptedException e) 
            {

            } finally {
                finish();
                startActivity(new Intent(firstactivity.class,secondActivity.class));
                stop();
            }
        }
    };
    splashTread.start();
}