• 页面传值


    1、跳页面传值

    2、跳页面取值

    3、完整代码

    4、测试项目

    跳页面传值:

    单条数据传值(MainActivity页面的代码):

    Intent intent = new Intent(MainActivity.this,GetDataActivity.class); 
    intent.putExtra("name","张三");
    startActivity(intent); 
    

    GetDataActivity页面的代码:

    Intent intent = getIntent();
    String name = intent.getStringExtra("name"); //name就是上一页传过来的值
    

     多条数据传值(MainActivity页面的代码):

    ArrayList<String> data = new ArrayList<>();
            data.add("张三");
            data.add("李四");
            data.add("王五");
    intent.putStringArrayListExtra("nameList",data);
    startActivity(intent);
    

     GetDataActivity页面的代码:

    Intent intent = getIntent();
    ArrayList nameList = intent.getCharSequenceArrayListExtra("nameList");
    String name1 = nameList.get(0);
    String name2 = nameList.get(1);
    String name3 = nameList.get(2);
    

    跳页面取值:

    单条数据取值(MainActivity代码):

    Intent intent = new Intent(this,GetDataActivity.class);
    startActivityForResult(intent,0x11);
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == 0x11){
            if(resultCode == 1){
                String lessData = data.getStringExtra("lessData");
            }
        }  
    }            
    

    GetDataActivity页面的代码:

    Intent intent = getIntent();
    String title = "头部“;
    intent.putExtra("lessData",title);
    setResult(1,intent);
    finish();
    

     多条数据传值(MainActivity页面的代码):

    Intent intent = new Intent(this,GetDataActivity.class);
    startActivityForResult(intent,0x12);
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if(requestCode == 0x12){
                 if(resultCode == 2){
                       ArrayList mData = data.getCharSequenceArrayListExtra("manyData");      
                 }
            }
    }    
    

     GetDataActivity页面的代码:

    ArrayList<String> manyData = new ArrayList<>();
    manyData.add("张一");
    manyData.add("张二");
    manyData.add("张三");
    manyData.add("张四");
    
    intent.putStringArrayListExtra("manyData",manyData);
    setResult(2,intent);
    finish();
    

    完整代码(MainActivity页面代码):

    package com.example.testproject;
    
    import androidx.annotation.Nullable;
    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;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import java.util.ArrayList;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener{
        private Button btn_less,btn_many;
        private TextView tv_title,tv_name,tv_sex,tv_age;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
        }
    
        private void initView(){
            btn_less = (Button)findViewById(R.id.btn_Less);
            btn_many = (Button)findViewById(R.id.btn_Many);
            tv_title = (TextView)findViewById(R.id.text_title);
            tv_name = (TextView)findViewById(R.id.text_name);
            tv_sex = (TextView)findViewById(R.id.text_sex);
            tv_age = (TextView)findViewById(R.id.text_age);
    
            btn_less.setOnClickListener(this);
            btn_many.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View view) {
    
            ArrayList<String> data = new ArrayList<>();
            data.add("张三");
            data.add("李四");
            data.add("王五");
    
            Intent intent = new Intent(this,GetDataActivity.class);
            switch (view.getId()){
                case R.id.btn_Less:
                    intent.putExtra("data","Less");
    //                intent.putStringArrayListExtra("nameList",data);
                    startActivityForResult(intent,0x11);
                    break;
                case R.id.btn_Many:
                    intent.putExtra("data","Mang");
                    startActivityForResult(intent,0x12);
                    break;
            }
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            cleanText();
            switch (requestCode){
                case 0x11:
                    String lessData = data.getStringExtra("lessData");
    
                    switch (resultCode){
                        case 1:
                            tv_title.setText(lessData);
                            Toast.makeText(this, "1", Toast.LENGTH_SHORT).show();
                            break;
                        case 2:
                            tv_name.setText(lessData);
                            Toast.makeText(this, "2", Toast.LENGTH_SHORT).show();
                            break;
                        case 3:
                            tv_age.setText(lessData);
                            break;
                        case 4:
                            tv_sex.setText(lessData);
                            break;
                            default:break;
                    }
                    break;
    
                case 0x12:
                    if(resultCode == 123){
                        ArrayList mData = data.getCharSequenceArrayListExtra("manyData");
                        tv_title.setText(mData.get(0).toString());
                        tv_name.setText(mData.get(1).toString());
                        tv_age.setText(mData.get(2).toString());
                        tv_sex.setText(mData.get(3).toString());
                    }
                    break;
            }
        }
    
        private void cleanText(){
            tv_title.setText("");
            tv_name.setText("");
            tv_age.setText("");
            tv_sex.setText("");
        }
    }
    

     MainActivity的布局代码:

    <?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:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:paddingRight="10dp"
        android:paddingLeft="10dp"
        android:orientation="vertical"
        tools:context=".MainActivity">
        <LinearLayout
            android:gravity="center_vertical"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="40dp">
           <TextView
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:text="标题:"/>
            <TextView
                android:id="@+id/text_title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="标题"/>
        </LinearLayout>
        <LinearLayout
            android:gravity="center_vertical"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="40dp">
            <TextView
                android:text="姓名:"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <TextView
                android:id="@+id/text_name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="姓名"/>
        </LinearLayout>
        <LinearLayout
            android:gravity="center_vertical"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="40dp">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="性别:"/>
            <TextView
                android:id="@+id/text_sex"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:hint="性别"/>
        </LinearLayout>
        <LinearLayout
            android:gravity="center_vertical"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="40dp">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="年龄:"/>
            <TextView
                android:id="@+id/text_age"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:hint="年龄"/>
        </LinearLayout>
    
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="40dp">
            <Button
                android:id="@+id/btn_Many"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="多条数据"/>
            <Button
                android:id="@+id/btn_Less"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="单条数据"/>
        </LinearLayout>
    
    </LinearLayout>
    

    GetDataActivity页面的代码:

    package com.example.testproject;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    import java.util.ArrayList;
    
    public class GetDataActivity extends AppCompatActivity implements View.OnClickListener{
        private EditText edt_title,edt_name,edt_sex,edt_age;
        private Button btn_M,btn_L;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_get_data);
            initView();
        }
    
       private void initView(){
           edt_title = (EditText)findViewById(R.id.edt_title);
           edt_name = (EditText)findViewById(R.id.edt_name);
           edt_sex = (EditText)findViewById(R.id.edt_sex);
           edt_age = (EditText)findViewById(R.id.edt_age);
    
           btn_L = (Button)findViewById(R.id.btn_Less_data);
           btn_M = (Button)findViewById(R.id.btn_Many_data);
    
           btn_L.setOnClickListener(this);
           btn_M.setOnClickListener(this);
    
           Intent intent = getIntent();
           String data = intent.getStringExtra("data");
           switch (data){
               case "Less":
                   btn_M.setEnabled(false);
                   break;
               case "Mang":
                   btn_L.setEnabled(false);
                   break;
           }
    
    //       ArrayList nameList = intent.getCharSequenceArrayListExtra("nameList");
    //       Toast.makeText(this, "" + nameList, Toast.LENGTH_SHORT).show();
       }
    
    
    
        @Override
        public void onClick(View view) {
            Intent intent = new Intent();
            switch (view.getId()){
                case R.id.btn_Less_data:
                    inputCheck(1);
                    break;
    
                case R.id.btn_Many_data:
                    inputCheck(2);
                    break;
            }
        }
    
        //输入框校验
        private void inputCheck(int position){
            String title = edt_title.getText().toString();
            String name = edt_name.getText().toString();
            String age = edt_age.getText().toString();
            String sex = edt_sex.getText().toString();
    
            if(title.isEmpty() && name.isEmpty() && age.isEmpty() && sex.isEmpty() ){
                Toast.makeText(this, "传值不能为空", Toast.LENGTH_SHORT).show();
                return;
            }
    
            Intent intent = getIntent();
    
            switch (position){
                case 1:
                    if(!title.isEmpty()){
                        intent.putExtra("lessData",title);
                        setResult(1,intent);
                        finish();
                    }
                    if(!name.isEmpty()){
                        intent.putExtra("lessData",name);
                        setResult(2,intent);
                        finish();
                    }
                    if(!age.isEmpty()){
                        intent.putExtra("lessData",age);
                        setResult(3,intent);
                        finish();
                    }
                    if(!sex.isEmpty()){
                        intent.putExtra("lessData",sex);
                        setResult(4,intent);
                        finish();
                    }
                    break;
    
                case 2:
                    if(title.isEmpty() || name.isEmpty() || age.isEmpty() || sex.isEmpty() ){
                        Toast.makeText(this, "传值不能为空", Toast.LENGTH_SHORT).show();
                    }else{
                        ArrayList<String> manyData = new ArrayList<>();
                        manyData.add(title);
                        manyData.add(name);
                        manyData.add(age);
                        manyData.add(sex);
    
                        intent.putStringArrayListExtra("manyData",manyData);
                        setResult(123,intent);
                        finish();
                    }
                    break;
            }
        }
    }
    

     GetDataActivity的布局代码:

    <?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"
        android:paddingTop="10dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        tools:context=".GetDataActivity">
        <EditText
            android:id="@+id/edt_title"
            android:lines="1"
            android:maxLength="5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="标题"/>
        <EditText
            android:id="@+id/edt_name"
            android:lines="1"
            android:maxLength="9"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="姓名"/>
        <EditText
            android:id="@+id/edt_age"
            android:lines="1"
            android:maxLength="2"
            android:inputType="number"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="年龄"/>
        <EditText
            android:id="@+id/edt_sex"
            android:lines="1"
            android:maxLength="2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="性别"/>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp">
            <Button
                android:id="@+id/btn_Less_data"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="单条数据"/>
            <Button
                android:id="@+id/btn_Many_data"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="多条数据"/>
        </LinearLayout>
    </LinearLayout>
    

     测试项目(点击获取,提取码:g555)

  • 相关阅读:
    使用typescript开发vue项目
    .sync和v-model的区别
    echarts通过dataZoom来控制默认显示固定条数数据
    ES6学习
    angular父子组件相互传值
    premiere中时间轴倍速预览及常用快捷键
    群晖Docker套件下搭建运行MSSQL
    微信的视频下载方法
    Unable to cast object of type 'System.Int32' to type 'System.String'.
    vs2017 2019莫名自动退出调试状态可以尝试一下如下的方法
  • 原文地址:https://www.cnblogs.com/Mr-Deng/p/11388452.html
Copyright © 2020-2023  润新知