Android移动应用开发之界面跳转以及数据传输
绑定展示demo界面,获取按钮绑定返回原界面的事件。主要实现的功能就是点击按钮能够实现界面的跳转。绑定展示主界面,获取按钮绑定跳转事件。自己创建一个界面,用于跳转。创建好此类记得申明一下。主界面,包含一个按钮。
·
文章目录
仅页面跳转主要文件目录
主要实现的功能就是点击按钮能够实现界面的跳转。
activity_main.xml
主界面,包含一个按钮
<?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">
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是Activity_main"
android:textSize="20sp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
demo.xml
自己创建一个界面,用于跳转
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="我是demo"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity
绑定展示主界面,获取按钮绑定跳转事件。
package scq.scq.demo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1_main = findViewById(R.id.btn1);
btn1_main.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("AAA","Onclick");
Intent it = new Intent(MainActivity.this, Activity_Demo.class);
startActivity(it);
}
});
}
}
Activity_Demo
绑定展示demo界面,获取按钮绑定返回原界面的事件。
package scq.scq.demo;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class Activity_Demo extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.demo);
Button btn1_demo = findViewById(R.id.btn1);
btn1_demo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
创建好此类记得申明一下。
运行
运行默认进入主界面
点击按钮
跳转到demo界面
再点击按钮
能够返回到主界面。
页面跳转+数据传输主要文件目录
其实就是比上面那个例子加了点东西。
MainActivity
package zufe.scq.scq;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView tv;
private static final int REQUEST_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = findViewById(R.id.textView1);
Button btn1 = findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("AAA","Onclick");
Intent it = new Intent(MainActivity.this, SubActivity.class);
it.putExtra("activityMain", "从Activity Main传数据");
startActivityForResult(it, REQUEST_CODE);
}
});
Button bt2 = findViewById(R.id.button2);
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences sp = getPreferences(Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("userName", "scq");
editor.commit();
}
});
}
// 回调函数,当返回数据了展现在activity
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 请求了数据
if(requestCode == REQUEST_CODE){
// 数据返回成功
if(resultCode == RESULT_OK){
String temp = null;
Bundle bundle = data.getExtras();
if(bundle != null){
temp = bundle.getString("subValue");
tv.setText("返回数据:"+temp);
}
}
}
}
}```
SubActivity
package zufe.scq.scq;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class SubActivity extends AppCompatActivity {
private TextView tv;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sub);
Button btn2 = findViewById(R.id.button2);
tv = findViewById(R.id.textView2);
String data = null;
Bundle extras = getIntent().getExtras();
if(extras != null){
data = extras.getString("activityMain");
tv.setText("Main传输的数据"+data);
}
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putString("subValue", "Activity Sub 返回的数据");
Intent it = new Intent();
it.putExtras(bundle);
setResult(RESULT_OK, it);
finish();
}
});
}
}
activity_main.xml
<?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">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Activity main"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回数据"
android:textSize="50sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="19dp"
android:gravity="center"
android:text="跳转到Activity Sub"
android:textSize="20sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="15dp"
android:gravity="center"
android:text="保存数据"
android:textSize="20sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button1" />
</androidx.constraintlayout.widget.ConstraintLayout>
sub.xml
<?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">
<TextView
android:id="@+id/textView1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Activity Sub"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="返回main"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textView1" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="170dp"
android:text="main传递的数据"
android:textSize="50sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
运行:
点击跳转按钮
然后点击返回
可见,实现了数据传输
更多推荐
所有评论(0)