一、 实验目的

(1) 掌握Andriod Studio的基本使用方法;
(2) 掌握Andriod Studio中常用的控件及其使用方法;

二、 实验内容

题目:

编写一个数据传递的小程序,要求在第一个界面输入姓名和生日,在第二个界面上显示“XX(姓名)您好,您的星座是XX座”;关闭第二个界面后,第一个界面上也能够显示“您的星座是XX座”。

1.首先,我创建了一个MainActivity和TestSuccessActivity两个Activity。在MainAcitivity中为按钮增加事件,点击第一个界面的按钮跳转到第二个Activity。

1.1 MainActivity.java

package com.example.constellation;import android.content.Intent;
import android.os.StrictMode;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {private EditText et_birthday_month;private EditText et_birthday_day;private EditText et_name;private Button btn_test;private TextView tv_result;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_birthday_month = (EditText) findViewById(R.id.et_birthday_month);et_birthday_day = (EditText) findViewById(R.id.et_birthday_day);et_name = (EditText) findViewById(R.id.et_name);tv_result = (TextView) findViewById(R.id.tv_result);btn_test = (Button) findViewById(R.id.btn_test);btn_test.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String Name =et_name .getText().toString().trim();String month = et_birthday_month.getText().toString().trim();String day=et_birthday_day.getText().toString().trim();if (!TextUtils.isEmpty(Name) && !TextUtils.isEmpty(Name)) {Intent intent = new Intent(MainActivity.this, TestSuccessActivity.class);intent.putExtra("name", Name);intent.putExtra("month",month);intent.putExtra("day",day);startActivity(intent);}}});String Result = getIntent().getStringExtra("result");tv_result.setText(Result);}
}

1.2 TestSuccessActivity.java

package com.example.constellation;import android.content.Intent;
import android.os.StrictMode;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {private EditText et_birthday_month;private EditText et_birthday_day;private EditText et_name;private Button btn_test;private TextView tv_result;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_birthday_month = (EditText) findViewById(R.id.et_birthday_month);et_birthday_day = (EditText) findViewById(R.id.et_birthday_day);et_name = (EditText) findViewById(R.id.et_name);tv_result = (TextView) findViewById(R.id.tv_result);btn_test = (Button) findViewById(R.id.btn_test);btn_test.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String Name =et_name .getText().toString().trim();String month = et_birthday_month.getText().toString().trim();String day=et_birthday_day.getText().toString().trim();if (!TextUtils.isEmpty(Name) && !TextUtils.isEmpty(Name)) {Intent intent = new Intent(MainActivity.this, TestSuccessActivity.class);intent.putExtra("name", Name);intent.putExtra("month",month);intent.putExtra("day",day);startActivity(intent);}}});String Result = getIntent().getStringExtra("result");tv_result.setText(Result);}
}

2.在activity_main.xml中布置好界面,其中输入的文本框选择的是EditText组件。布局是线性垂直布局中套用两个线性水平布局的方式。

activity_main.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"android:orientation="vertical"android:padding="10dp"><TextViewandroid:layout_width="360dp"android:layout_height="70dp"android:text="数据传递小程序"android:textColor="#FFFF00FF"android:textSize="50sp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="8dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="  姓        名:"android:textColor="#FF000000"android:textSize="20sp" /><EditTextandroid:id="@+id/et_name"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入您的姓名" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="6dp"android:weightSum="1"android:id="@+id/linearLayout2"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:text="出生日期:"android:textColor="#FF000000"android:textSize="20dp" /><EditTextandroid:id="@+id/et_birthday_month"android:layout_width="43dp"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:hint="01"android:textColor="#000000"android:textSize="25dp"android:textStyle="italic" /><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:text="月"android:textSize="20dp"android:textColor="#000000"/><EditTextandroid:id="@+id/et_birthday_day"android:layout_width="43dp"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:hint="01"android:textColor="#000000"android:textSize="25dp"android:textStyle="italic"/><TextViewandroid:id="@+id/textView3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:text="日"android:textSize="20dp"android:textColor="#000000"/></LinearLayout><Buttonandroid:id="@+id/btn_test"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/linearLayout2"android:layout_centerHorizontal="true"android:layout_margin="10dp"android:gravity="center"android:text="测         试"android:textSize="25dp" /><TextViewandroid:id="@+id/tv_result"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center"android:layout_margin="50dp"android:layout_marginLeft="80dp"android:layout_below="@+id/test"android:textSize="20dp"android:textColor="#034969"/>
</LinearLayout>
3.在activity_test_success.xml中定义一个TextView负责显示数据。
activity_test_success.xml布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/activity_selection"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#ebebeb"android:gravity="center_horizontal"android:orientation="vertical"android:padding="10dp"><TextViewandroid:id="@+id/tv_in"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#000000"android:textSize="20dp" /><Buttonandroid:id="@+id/btn_return"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/tv_in"android:layout_marginTop="10dp"android:textSize="20sp"android:onClick="return"android:text="返          回"android:textAllCaps="false" />
</RelativeLayout>

4.运行结果



三、 实验总结

在这次实验中我学会了在模仿中找寻因版本问题导致的运行错误:

  1. android.support.v7.app.AppCompatActivity不能使用的解决办法
    把原先的import android.support.v7.app.AppCompatActivity;
    改为import androidx.appcompat.app.AppCompatActivity;
  2. 给两个EditText组件和一个按钮组件添加监听事件,当点击按钮时,将日期的值传递到MainActivity中,因为最后传递一个星座,所以生日转化成星座的过程就必须在MainActivity中完成。需要考虑的是,输入的应该是个数字,而不是字符,输出的又是字符,所以需要进行String和int的转化。

四、参考文献

.Android App开发从入门到精通.安辉 编著. 清华大学出版社, 2018.

Tips:

1.android.support.v7.app.AppCompatActivity不能使用的解决办法
2.我运行第一个页面 ,点测试后,导致了运行停止,还不清楚是什么问题,弄半天没有解决,回头再看看。
2.1.关于第二个问题解决方案:是因为我创建了一个Acitivity但是没有在AndroidManifest.xml中添加。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.constellation"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.Constellation"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>   //添加一个创建的Activity 名称即可<activity android:name=".TestSuccessActivity"></activity></application></manifest>

基本程序单元Activity—Activity生命周期之数据传递小程序相关推荐

  1. 小程序读取几种不同格式json数据(小程序json解析)

    小程序json解析第一种格式 that.setData({goldData: res.data.result[0], //result里多了个{}所以要标个[0]}) wxml <text cl ...

  2. 微信小程序-后台使用富文本编辑器返回数据,小程序编译富文本编辑器返回的数据

    最近遇到一个功能,后台管理系统添加商品的时候,商品详情是使用富文本编辑器添加的.小程序获取的商品详情数据是含有<p>标签的. 后台管理系统 百度了多种方法,也试用了很多方法,最终觉得wxP ...

  3. 小程序input提交后如何清空输入框数据:小程序与Vue的数据绑定方式

    前言 一直觉得,小程序与Vue有着神似之风.这一点在我第一天开始接触小程序时就这么认为,或者说,任何前端相关的语言,不管是node.js.Vue.angular.小程序,都和js有着千丝万缕的联系. ...

  4. 【微信小程序】小程序应用和页面生命周期

    文章目录 什么是生命周期 生命周期的分类 生命周期函数 小程序的应用生命周期函数 小程序的页面生命周期函数 应用生命周期与页面生命周期之间的交互 什么是生命周期 生命周期(Life Cycle)是指一 ...

  5. lpc2000 filash utility 程序烧写工具_重点必看 | 取证小程序开发之第四届美亚杯硬盘信息快速解题...

    告别金秋十月,迎来仲冬十一月,同时迎来的是首届电子数据取证小程序大赛.随着投稿截止时间的一天天到来,越来越多的用户参与到本次小程序大赛,用自己的力量参与取证知识创新,为营造良好的取证技术生态赋能. 上 ...

  6. android的应用入口点函数,android 没有main函数,怎么找到程序执行入口呢?以及activity主要生命周期的方法说明...

    android应用程序,由一到多个Activity组成.每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码之外生成的Activity,比如a ...

  7. Android开发---Activity的生命周期

    在Android开发中,第一步学习的应该是最基础的东西,即Activity的声明周期,相信Activity对于从事Android开发的朋友都很熟悉,这里作者不多做解释.Android的生命周期可以用如 ...

  8. Android学习笔记系列四2 —— Activity的生命周期

    2019独角兽企业重金招聘Python工程师标准>>> 启动一个Activity 使用startActivity(Intent intent). intent指定了你想要启动的act ...

  9. android activity 回调函数,Android Activity的生命周期

    Activity的生命周期 Android系统根据activity的所处不同阶段对应的唤起其特定的回调函数来执行代码.activity的一系列有序的生命周期回调函数.本文将来讨论下activity各阶 ...

最新文章

  1. 科大讯飞语音引擎_科大讯飞的1024:语音技术进一步突破,发布专用芯片
  2. YbtOJ#532-往事之树【广义SAM,线段树合并】
  3. java水果超市mysql_Java基础 | 项目实战之水果超市
  4. cuda nsight 调试和性能分析
  5. JeecgBoot 移动OA 新版本上线啦!!!
  6. 茂名2021高考成绩查询入口,茂名高考成绩查询入口
  7. 使用腾讯OCR,图片转表格
  8. 近67万辆奔驰汽车被召回,涉及C级、SLC级等车型
  9. java c s 比 c c s_Java技术学习笔记:C/S 与B/S 区别
  10. 微信小程序开发:学习笔记[9]——本地数据缓存
  11. transaction already active
  12. 【MYSQL快速入门】常用函数:日期函数
  13. Ubuntu14.04开启wifi热点(亲测有效)
  14. 2018华为网络技术大赛课程-服务器操作系统基础原理自测题答案
  15. 基于MTCNN+CNN的疲劳检测
  16. Java、JSP网吧自动计费收费管理系统
  17. 收藏 | 电子元器件图片、名称、符号图形对照
  18. phpspider PHP 爬虫
  19. 我的2023届秋招之旅
  20. [附源码]java毕业设计网吧购物系统

热门文章

  1. LeetCode之Rotate Array
  2. Android之发送短信后按钮(60秒)变灰色每隔一秒递减显示
  3. java openxml 操作 word,openxml word转成xml
  4. mysql之主从复制 简书_MySQL主从复制(传统)
  5. 编写html要注意,编写XHTML需要注意的问题以及和HTML的区别
  6. mysql mvcc 隔离级别_隔离级别和MVCC
  7. 表面上在帮女朋友拍照,其实镜头瞄准的是......
  8. 每日一笑 | 如果把大脑看成CPU的话...
  9. linux运行.pak文件,使用game-to-flatpak脚本将商业Linux游戏安装程序转换为Flatpak应用程序...
  10. python删除列表中的重复值_如何从 Python 列表中删除重复项