目录
一、添加一个页面
- 在src上面右键,new一个Other
- 选择Android,Android Activity
- 选择Blank Activity
- 更改Activity Name(类的名字),Layout Name自动更改(布局名字),点击Finish完成
二、页面跳转
2.1、实现方法
- 在java文件中,Intent类 ,new一个对象,设置要跳转的页面
构造方法,第一个参数当前页面,第二个参数跳转到哪个页面Intent intent = new Intent(this, SecondActivity.class);
- 跳转
startActivity(intent);
- 使用按键跳转页面
参考博文
2.2、java文件
package com.example.ym;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void BottonBeCliecked(View v){
//设置要跳转的页面
Intent intent = new Intent(this, SecondActivity.class);
//跳转
startActivity(intent);
}
}
2.3、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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第一个页面" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginLeft="37dp"
android:layout_marginTop="116dp"
android:onClick="BottonBeCliecked"
android:text="跳转到第二个页面" />
</RelativeLayout>
三、传递参数方法一
3.1、传递
Intent类的方法putExtra
putExtra,参数1键值队(接收的时候需要这个参数),参数2传递的信息(可以是很多种数据类型)
intent.putExtra("Mydata", "小伟");
3.2、接收
- 把传过来的Intent获取过来
Intent i = this.getIntent();
- 用一个数据类型变量,把键里面的值获取出来
data = i.getStringExtra("Mydata");
- 把获取的数据显示在页面
Toast.makeText(this, "收到数据," + data, 0).show();
3.3、完整代码
- main页面代码
package com.example.ym; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void BottonBeCliecked(View v){ //设置要跳转的页面 Intent intent = new Intent(this, SecondActivity.class); intent.putExtra("Mydata", "小伟"); //跳转 startActivity(intent); } }
- Second页面代码
package com.example.ym; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Toast; public class SecondActivity extends Activity { private String data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Intent i = this.getIntent(); data = i.getStringExtra("Mydata"); Toast.makeText(this, "收到数据," + data, 0).show(); } public void BottonBeCliecked(View v){ //设置要跳转的页面 Intent intent = new Intent(this, MainActivity.class); //跳转 startActivity(intent); } }
四、传递参数方法二
传递参数类型多了,就要用这种方法
- 使用Bundle类,可以传递很多参数
Bundle bundle = new Bundle(); bundle.putString("Mydata", "小伟"); bundle.putInt("ID", 101); intent.putExtras(bundle);
- 接收方法和第一种一样
Intent i = this.getIntent(); //获取Intent Bundle b = i.getExtras(); //获取Bundle String data = b.getString("Mydata"); //把Bundle传过来的值获取出来 int data2 = b.getInt("ID"); //在页面显示 Toast.makeText(this, "收到数据," + data + data2, 0).show();
师承上官可编程 —— 陈立臣