一.创建新页面
在eclipse中建立安卓工程后,默认会有一个页面MainActivity,要实现多个页面的跳转,首先需要建立新的页面
在eclipse建立新的页面过程如下:
要添加的新页面的工程下src 右键---->New—>Other—>选择Android下的Android Activity
选择next下一步
按照需求选择后点击next:
为新页面取名后点击完成,完成新页面的创建
二、安卓页面点击跳转
1.实现点击按钮实现页面跳转
要实现点击按钮实现页面跳转,需要进行安卓按键的响应,安卓按键响应的几种方式见安卓按键响应的方式
这里运用了在xml中设置按键的onClick绑定的函数这一方法。
activity_main_xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" ><Buttonandroid:id="@+id/button1" android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="跳转到第二个界面"// 按键响应android:onClick="GoSecond"/><TextViewandroid:id="@+id/text1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="第一个界面"android:layout_below="@id/button1"android:layout_marginTop="50dp"/></RelativeLayout>
MainActivity.java:
package com.example.heavysea.l;//import android.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void GoSecond(View v){// Intent 去设置要跳转的页面Intent intent = new Intent(this,SecondActivity.class);// 进行跳转startActivity(intent);}
}
实现效果:点击button,从MainActivity跳转到SecondActivity
2.跳转过程中传参
在MainActivity中将数据传递给SecondActivity,使得SecondActivity获取数据:
MainActivity.java
package com.example.heavysea.l;//import android.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void GoSecond(View v){// Intent 去设置要跳转的页面Intent intent = new Intent(this,SecondActivity.class);// 设置要传递给页面二的参数 设置键值对intent.putExtra("mydata", "来自页面MainActivity");// 进行跳转startActivity(intent);}
}
SecondActivity.java:
package com.example.heavysea.l;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;public class SecondActivity extends Activity {private String data;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second);// 获取参数Intent i = this.getIntent();data = i.getStringExtra("mydata");System.out.println(data);// 以弹框显示获取到的数据Toast.makeText(this, data,0).show();}public void GoThird(View v){Intent intent = new Intent(this,ThirdActivity.class);startActivity(intent);}}
三、设置页面几秒后自动跳转
1.页面几秒后自动跳转
为实现页面在几秒后的自动跳转,最直接的思路就是运用sleep方法设置暂停的时间,再进行跳转。但实际上sleep方法是发生在UI线程中的,会使原本不断刷新的UI暂停,最终运行的效果是看不到第一个页面的,直接跳转到第二个页面。因此需要另外启动一个线程,在新线程中运用sleep方法。
为此需要引入java线程。
MainActivity.java
package com.example.heavysea.l;//import android.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 需要另外启动一个线程 在新线程里面去sleep// 不要在UI线程中sleep UI被sleep会暂停刷新Thread t = new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubtry {Thread.sleep(3000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}Intent intent = new Intent(MainActivity.this,SecondActivity.class);intent.putExtra("mydata", "来自页面一");startActivity(intent);}});// 开启线程t.start();}}
SecondActivity.java
package com.example.heavysea.l;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;public class SecondActivity extends Activity {private String data;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second);// 获取参数Intent i = this.getIntent();data = i.getStringExtra("mydata");System.out.println(data);Toast.makeText(this, data,0).show();}