zoukankan      html  css  js  c++  java
  • Android基础——使用Bundle在Activity间传递数据

    Bundle是个保存元组<key,value>的数据结构,两个活动传递数据时就通过Bundle进行传递

    在Main中输入数据,然后将数据传递给Address

    两个活动布局

    Main

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout 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"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
    
        <EditText
            android:id="@+id/name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入姓名"
            />
        <EditText
            android:id="@+id/classname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入班级名"
            />
        <EditText
            android:id="@+id/number"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入学号"
            />
    
        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提交"
            />
    
    </LinearLayout>

    Address

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout 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=".AddressActivity"
        android:orientation="vertical"
        >
    
        <TextView
            android:id="@+id/_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
        <TextView
            android:id="@+id/_classname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <TextView
            android:id="@+id/_number"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <Button
            android:id="@+id/_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="返回"
            />
    </LinearLayout>

    Main的java调用

    package com.example.myactivityii;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
            Button button = (Button)findViewById(R.id.button);
            button.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    //获取EditText中的内容
                    String site1 = ((EditText)findViewById(R.id.name)).getText().toString();
                    String site2 = ((EditText)findViewById(R.id.classname)).getText().toString();
                    String site3 = ((EditText)findViewById(R.id.number)).getText().toString();
                    if("".equals(site1) || "".equals(site2) || "".equals(site3)){//只要有一个信息为空
                        Toast.makeText(
                                MainActivity.this,"请将信息填写完整",Toast.LENGTH_SHORT
                        );
                    }
                    else {
                        //1.创建Intent对象
                        Intent intent = new Intent(
                                MainActivity.this, AddressActivity.class
                        );
                        //2.创建Bundle对象
                        Bundle bundle = new Bundle();
                        //3.在Bundle里保存信息
                        bundle.putCharSequence("name,",site1);//保存的是字符序列
                        bundle.putCharSequence("classname",site2);
                        bundle.putCharSequence("number",site3);
                        //4.将Bundle保存到Intent中去
                        intent.putExtras(bundle);
                        //5.启动intent,将信息传递到AddressActivity
                        startActivity(intent);
                    }
                }
            });
    
    
    
        }
    }

    Address的java调用

    package com.example.myactivityii;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TextView;
    
    /*
    * 获取Main中传递的Intent并处理其中的信息
    * */
    public class AddressActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_address);
    
            //1.获取Intent和Bundle
            Intent intent = getIntent();
            Bundle bundle = intent.getExtras();
            //2.获取信息
            String name = bundle.getString("name");
            String classname = bundle.getString("classname");
            String number = bundle.getString("number");
            //3.更新到当前活动中
            TextView textView1 = (TextView)findViewById(R.id._name);
            TextView textView2 = (TextView)findViewById(R.id._classname);
            TextView textView3 = (TextView)findViewById(R.id._number);
            textView1.setText(name);
            textView2.setText(classname);
            textView3.setText(number);
    
        }
    }
  • 相关阅读:
    Vue—node
    Vue—组件,父传子,子传父
    Vue—实例成员computed和watch
    Vue—条件、循环指令
    Vue初识
    BBS—登录,修改密码,退出登录
    创建ORM模型
    模板介绍
    url映射的时候指定默认参数
    自定义url转换器
  • 原文地址:https://www.cnblogs.com/zsben991126/p/12234810.html
Copyright © 2011-2022 走看看