本篇博客主要讲解如何使用Intent来实现Activity之间的跳转.
本篇博客实现的是一个简单的注册跳转的Demo
实现步骤:
- 新建一个Activity的布局XML文件
- 新建一个Activity并使用setContentView()方法关联该Activity的布局文件
- 实例化一个Intent对象
- putExtra()方法实现数据的单向传递
- getintent()方法 返回一个intent实例
- getStringExtra()方法接受数据
一.两个界面设计展示
- MainActivity的布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="com.ggq.intent.MainActivity"
android:orientation="vertical"
android:weightSum="1">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="用户名:"
android:id="@+id/tv1" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="请输入用户名"
android:ems="10"
android:id="@+id/et1"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="密 码:"
android:id="@+id/tv2" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:ems="10"
android:hint="请输入密码"
android:id="@+id/et2"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:gravity="center"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下一步"
android:id="@+id/btn_next"
android:textSize="25dp" />
</LinearLayout>
</LinearLayout>
2.Activity02的布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
android:weightSum="1">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/textView" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="用户名:"
android:id="@+id/tv3" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/tv4" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="密 码:"
android:id="@+id/tv5" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/tv6" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center_horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确认信息并注册"
android:id="@+id/btn_sure"
android:textSize="25dp" />
</LinearLayout>
</LinearLayout>
二.Java代码实现
- MainActivity代码
package com.ggq.intent;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private Button button_next=null;
private EditText et_username = null;
private EditText et_pwd = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_username=(EditText) findViewById(R.id.et1);
et_pwd=(EditText) findViewById(R.id.et2);
button_next = (Button) findViewById(R.id.btn_next);
button_next.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, Activity02.class);
String name = et_username.getText().toString().trim();
String pwd = et_pwd.getText().toString().trim();
intent.putExtra("username", name);
intent.putExtra("pwd", pwd);
MainActivity.this.startActivity(intent);
}
});
}
}
2.Activity02代码
package com.ggq.intent;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class Activity02 extends AppCompatActivity{
Button btn_sure=null;
TextView tv_name=null;
TextView tv_pwd=null;
protected void onCreate( Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity02);
Intent intent = super.getIntent();
String getname = intent.getStringExtra("username");
String getpwd = intent.getStringExtra("pwd");
btn_sure = (Button) findViewById(R.id.btn_sure);
tv_name = (TextView) findViewById(R.id.tv4);
tv_pwd = (TextView) findViewById(R.id.tv6);
tv_name.setText(getname);
tv_pwd.setText(getpwd);
btn_sure.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(Activity02.this, "注册成功!", Toast.LENGTH_SHORT).show();
}
});
}
}
三.AndroidManifest配置
使用一个新的Activity必须在AndroidManifest清单中注册才能使用
注册代码如下:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Activity02">
</activity>
</application>
四.最终效果展示