众所周知,在Android程序开发中,一个Activity类就对应一个用户界面,每一个用户界面都有自己的一个布局文件。而一个安卓程序正是由很多的Activity页面组成。现在我们就来谈一谈怎么创建一个Activity页面和这些页面之间怎么传输数据。 1. 创建新的类继承自Activity类 2.为该Activity类绑定布局文件(xml) 3.在AndroidManifest.xml文件中注册该Activity 在Android中,Activity与Activity之间的跳转是借助Intent对象来实现的。 1.Activity之间传递简单数据类型 接收端: 2.将数据封装到bundle中再进行传递 接收端: 3.传输复杂的数据类型 发送端: 接收端: 发送端需要设置请求码: 接收端返回数据: 发送方接收返回数据:一:Activity概述
二:Activity创建
import android.content.Intent; import android.os.Bundle; import android.os.PersistableBundle; import android.view.View; import android.widget.EditText; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; public class NewActivity extends AppCompatActivity { private EditText etName; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" xmlns:android="https://schemas.android.com/apk/res/android"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="这是新的activity界面" android:textColor="#000021"/> </LinearLayout>
<activity android:name=".NewActivity"> <!-- 配置当前activity作为程序的主界面 --> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
三:Activity之间的跳转
1.Activity的数据单向传递
发送端: //进行Activity的跳转 //创建intent对象 Intent intent=new Intent(); //为intent对象设置目的地 intent.setClass(MainActivity.this,NewActivity.class); //跳转到新的Activity //跳转时需要携带的数据 intent.putExtra("name",names[position]); intent.putExtra("phone","123456"); intent.putExtra("email","cnm@123.com");
//接收传递过来的数据 Intent request=getIntent(); String name=request.getStringExtra("name"); String phone=request.getStringExtra("phone"); String email=request.getStringExtra("email");
发送端: //将数据封装到Bundle中再传送到intent Bundle bundle=new Bundle(); bundle.putString("name",names[position]); bundle.putString("phone","123456"); bundle.putString("email","123@sss"); intent.putExtra("bundle",bundle);
Bundle bundle=request.getBundleExtra("bundle"); String name=bundle.getString("name"); String phone=bundle.getString("phone"); String email=bundle.getString("email");
javaBean要实现Serializable接口 /** * 自定义传输数据类型,需要实现Serializable接口 */ public class Student implements Serializable { private String name; private String phone; private String email; public Student() { } public Student(String name, String phone, String email) { this.name = name; this.phone = phone; this.email = email; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
//传输自定义数据类型 Student student=new Student("张三","123","123"); intent.putExtra("stu",student); startActivity(intent);//不传递数据,并且不需要做出响应
//接收相应的数据 Student student= (Student) request.getSerializableExtra("stu"); String name=student.getName(); String phone=student.getPhone(); String email=student.getEmail();
2.Activity的数据双向传递
startActivityForResult(intent,100);
public void onClicked(View v){ //向mainActivity返回数据 Intent response =new Intent(); response.putExtra("name",etName.getText().toString()); //响应 setResult(200,response); //结束当前的NewActivity finish(); }
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { //requestCode跳转时的请求码 //resultCode返回响应的结果码 //data返回响应的Intent对象 super.onActivityResult(requestCode, resultCode, data); if(requestCode==100&&resultCode==200){ //获得从NewActivity响应的数据 String name=data.getStringExtra("name"); //修改数据源 names[currentPosition]=name; //刷新ListView adapter.notifyDataSetChanged(); } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算