上一章讲过一个Activity可以简单理解为一个页面,所以这里页面跳转也可以理解为从一个Activity跳转到另一个Activity。
下面开搞:
第一步创建一个新的Activity
点击Finish后
新的Activity创建成功
第二步在MainActivity中创建一个按钮,点击后跳转Main2Activity
打开MainActivity的布局文件,清空activity_main.xm里所有的代码并且copy下面的代码进去
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/click"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="点击跳转"
android:layout_centerInParent="true" />
</RelativeLayout>
这里我们创建了一个id为click的按钮,大小为100dp * 100dp,并且在页面的中央显示
然后我们进入MainActivity文件来加载这个按钮并添加按钮点击跳转事件
红框代表的是继承安卓的点击事件,绿框代表的是在当前页面中加载id为click的按钮,蓝框指的是当id为click的控件执行点击事件后需要响应的方法。
安卓Activty需要通过Intent来跳转,Intent里面两个参数,第一个代表当前页面,第二代表需要跳转到的页面
现在点击运行你的程序
第三步页面之间数据传递
MainActivity响应点击事件处修改为下面代码,添加一个Bundle:
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
Bundle bundle = new Bundle();
bundle.putString("String","页面跳转");
intent.putExtras(bundle);
startActivity(intent);
在Main2Activity布局文件activity_main2中添加一个Text控件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main2Activity">
<TextView
android:id="@+id/text"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true"
android:gravity="center"
android:textColor="@color/colorPrimary"/>
</RelativeLayout>
在Main2Activity中获取MainActivty传过来的数据并且展示
package inforcreation.com.myapplication;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class Main2Activity extends AppCompatActivity {
private TextView text = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
text = (TextView)findViewById(R.id.text);
Intent intent = getIntent();
String message = intent.getExtras().getString("String");
if (message != null && !message.isEmpty()){
text.setText(message);
}
}
}