实验二 Activity组件通信

   日期:2020-11-05     浏览:112    评论:0    
核心提示:Activity组件通信前言一、实验目的及要求二、实验内容及步骤任务一:根据下述要求实现对应程序。任务二:在第二个活动中进行操作前言使用intent在两个Activity之间实现数据的传递。即 a activity———数据———> b activity。传递的方式有显示和隐式两种。一、实验目的及要求(1)掌握显示启动和隐式启动的方式(2)掌握Activity间的数据通信二、实验内容及步骤任务一:根据下述要求实现对应程序。完成启动界面的设计,要求采用合理布局,使界面效果与图1

Activity组件通信

  • 前言
  • 一、实验目的及要求
  • 二、实验内容及步骤
    • 任务一:根据下述要求实现对应程序。
    • 任务二:在第二个活动中进行操作

前言

使用intent在两个Activity之间实现数据的传递。
即 a activity———数据———> b activity。
传递的方式有显示和隐式两种。

一、实验目的及要求

(1)掌握显示启动和隐式启动的方式
(2)掌握Activity间的数据通信

二、实验内容及步骤

任务一:根据下述要求实现对应程序。

完成启动界面的设计,要求采用合理布局,使界面效果与图1所示结果保持一致。( “男”单选按钮默认选中,学院下拉列表框的内容为:信息技术学院、外国语学院、机电学院、商学院、艺术设计学院、珠宝学院、新闻传播学院);左列标签名字体大小为24sp;点击“使用显示启动”按钮和“使用隐式启动”按钮,均能跳转至界面2,如图2所示,前者使用显示启动方式,后者使用隐式启动方式,两种启动方式均将界面1中的数据传递至界面2中。

界面 1布局:

第一个Activity中:

布局文件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="15dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="学号:"
            android:textSize="24sp" />

        <EditText
            android:id="@+id/et_id"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="姓名:"
            android:textSize="24sp" />

        <EditText
            android:id="@+id/et_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </LinearLayout>


    <RadioGroup
        android:id="@+id/rg_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="性别:"
            android:textSize="24sp" />

        <RadioButton
            android:id="@+id/rb_man"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="男"></RadioButton>

        <RadioButton
            android:id="@+id/rb_woman"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="女"></RadioButton>
    </RadioGroup>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="学院:"
            android:textSize="24sp" />

        <Spinner
            android:id="@+id/spin"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:entries="@array/spinnerdata"
            android:spinnerMode="dialog"></Spinner>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="专业:"
            android:textSize="24sp" />

        <EditText
            android:id="@+id/et_pf"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="班级:"
            android:textSize="24sp" />

        <EditText
            android:id="@+id/et_class"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn_show"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="使用显示启动" />

        <Button
            android:id="@+id/btn_hitshow"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="使用隐式启动" />

    </LinearLayout>

</LinearLayout>

注意:这里使用传递数据给Spinner是通过数组资源文件进行设定的。

资源如下:

<resources>
    <string name="app_name">test</string>

    <string-array name="spinnerdata">
        <item>信息技术学院</item>
        <item>外国语学院</item>
        <item>机电学院</item>
        <item>商学院</item>
        <item>艺术设计学院</item>
        <item>珠宝学院</item>
        <item>新闻传播学院</item>

    </string-array>

</resources>

MainActivity中填写:

package com.example.test2;

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.RadioGroup;
import android.widget.Spinner;

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 

    private Button buttonShow, buttonHitShow;
    private EditText editTextId, editTextName, editTextPf, editTextClass;
    private RadioGroup radioGroup;
    private Spinner spinner;

    @Override
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getViewId();
        buttonShow.setOnClickListener(this);
        buttonHitShow.setOnClickListener(this);
    }

    private void getViewId() { 
        buttonShow = findViewById(R.id.btn_show);
        buttonHitShow = findViewById(R.id.btn_hitshow);
        editTextId = findViewById(R.id.et_id);
        editTextName = findViewById(R.id.et_name);
        radioGroup = findViewById(R.id.rg_1);
        spinner = findViewById(R.id.spin);
        editTextPf = findViewById(R.id.et_pf);
        editTextClass = findViewById(R.id.et_class);
    }

    @Override
    public void onClick(View v) { 
        String editTextId_s = editTextId.getText().toString();
        String editTextName_s = editTextName.getText().toString();
        String editTextPf_s = editTextPf.getText().toString();
        String editTextClass_s = editTextClass.getText().toString();
        String spinner_s = spinner.getSelectedItem().toString();

        switch (v.getId()) { 
            case R.id.btn_show:
                Intent intent = new Intent(MainActivity.this, MainActivity2.class);
                switch (radioGroup.getCheckedRadioButtonId()) { 
                    case R.id.rb_man:
                        intent.putExtra("sexData", "男");
                        break;
                    case R.id.rb_woman:
                        intent.putExtra("sexData", "女");
                        break;
                }
                intent.putExtra("editTextId_s", editTextId_s);
                intent.putExtra("editTextName_s", editTextName_s);
                intent.putExtra("editTextPf_s", editTextPf_s);
                intent.putExtra("editTextClass_s", editTextClass_s);
                intent.putExtra("data_s", spinner_s);

                startActivity(intent);
                break;

            case R.id.btn_hitshow:
                Intent intent1 = new Intent();
                intent1.setAction("com.example.mainactivity2");

                switch (radioGroup.getCheckedRadioButtonId()) { 
                    case R.id.rb_man:
                        intent1.putExtra("sexData", "男");
                        break;
                    case R.id.rb_woman:
                        intent1.putExtra("sexData", "女");
                        break;

                }
                intent1.putExtra("editTextId_s", editTextId_s);
                intent1.putExtra("editTextName_s", editTextName_s);
                intent1.putExtra("editTextPf_s", editTextPf_s);
                intent1.putExtra("editTextClass_s", editTextClass_s);
                intent1.putExtra("data_s", spinner_s);

                startActivity(intent1);
                break;
        }
    }
}

任务二:在第二个活动中进行操作

点击界面1中的按钮后,跳转至界面2,将界面1中输入的内容传递至界面2的ListView中显示,效果如图2所示。(要求: 列表文字大小为28sp,图片使用Vector格式,从上到下依次使用credit_card_black,account_box_black,wc_black,account_balance_black,school_black,assignment_ind_black)

界面2布局:

第二个Activity中:

布局文件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/lv_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

子项item布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher_background" />

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello"
        android:textSize="28sp" />


</LinearLayout>

MainActivity中代码:

package com.example.test2;

import androidx.appcompat.app.AppCompatActivity;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity2 extends AppCompatActivity { 

    @Override
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        ListView lv_data = findViewById(R.id.lv_1);

        SimpleAdapter adapter = new SimpleAdapter(this, getData(), R.layout.activity_main2_item, new String[]{ "title", "image"},
                new int[]{ R.id.title, R.id.image});
        lv_data.setAdapter(adapter);


    }

    private List<Map<String, Object>> getData() { 
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

        Intent intent = getIntent();

        Map<String, Object> map = new HashMap<String, Object>();
        map.put("title", intent.getStringExtra("editTextId_s"));

        map.put("image", R.drawable.credit_card_black);
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("title", intent.getStringExtra("editTextName_s"));

        map.put("image", R.drawable.account_box_black);
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("title", intent.getStringExtra("sexData"));
        map.put("image", R.drawable.wc_black);
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("title", intent.getStringExtra("data_s"));
        map.put("image", R.drawable.account_balance_black);
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("title", intent.getStringExtra("editTextPf_s"));
        map.put("image", R.drawable.school_black);
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("title", intent.getStringExtra("editTextClass_s"));
        map.put("image", R.drawable.assignment_ind_black);
        list.add(map);


        return list;
    }
}

注意:在第二个Activity中需要自行指定一个图片


 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服