安卓控件——页面跳转
1 带参跳转
1.1 新建Activity
首先创建一个新的activity这个时候会自动生成一个页面的配套文件
可以看到他生成了:
我么接下来将会用到这几个文件。
接下来我们继续开始编写代码:
1.2 编写xml样式文件
第一个页面:
我们需要一个textview文本容器,一个button用来点击跳转,触发事件
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请登录"
android:layout_gravity="center"
android:textSize="40dp"
/>
<EditText
android:layout_weight="1"
android:layout_width="200dp"
android:layout_height="50dp"
android:id="@+id/edit_text"
android:hint="@string/edit_text"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onclick"
android:text="@string/button_send"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
1.3 第一个页面java文件
java文件:在第一个页面的activity_main里面编写页面逻辑。
package com.example.pagetwo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import static android.view.View.*;
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onclick(View view) {
EditText editText =(EditText)findViewById(R.id.edit_text);
String message =editText.getText().toString();
Intent intent = new Intent(this,Main2Activity.class);
intent.putExtra(EXTRA_MESSAGE,message);
startActivity(intent);
}
}
代码讲解程序启动函数:
点击按钮跳转页面事件:
现在第一个页面定义并且发送参数,接下来在第二个页面接收并且加载,完成
参数的接收功能地方
这里定义了一个页面容器,intent,其中利用Intent的Extra部分来存储我们想要传递的数据,使用putEtra传递参数,如果是无参就不在里面填东西就OK
第二个页面,只需要一个textview展示消息就可以。
1.4 消息接收页面样式文件:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_gravity="center"
android:textSize="40dp"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
1.5 消息接收页面java逻辑文件:
package com.example.pagetwo;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class Main2Activity extends AppCompatActivity {
@SuppressLint("newapi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 接收响应过来的流程数据
Intent intent =getIntent();
String message =intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView=new TextView(this);
textView.setText(message);
textView.setTextSize(50);
setContentView(textView);
}
}
1.5.1在这里主要是接收响应数据:
Intent intent =getIntent();
String message =intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
1.5.2 将消息作为text属性加到textview:
textView.setText(message);
1.6 效果
消息发送页面:
消息接收页面:
2.无参跳转
2.1消息发送
在第一个页面编写时候直接将java文件只进行跳转
- 消息发送页面java文件:
package com.example.pagetwo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import static android.view.View.*;
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onclick(View view) {
Intent intent = new Intent(this,Main2Activity.class);
startActivity(intent);
}
}
2.2消息接收页面
消息接收页面,因为没有参数,我们就默认
2.3效果
第一个页面:
第二个页面:
nt intent = new Intent(this,Main2Activity.class);
startActivity(intent);
}
}