天天看点

安卓开发之星座查询

安卓开发之星座查询

通过对Android的学习,这次demo实现一个星座的查询,想看自己是哪个的星座的,不妨可以来看看该文章

创建一个 Android 项目,实现星座查询功能,功能要求如下:

该应用由 2 个界面组成,分别为星座查询主界面(如图 1 所示)、查询结果界面(如图 4所示)。

在图 1 界面中设置生日输入框不能进行输入,只能点击弹出日期对话框进行选择(如图3 所示),并将选择的日期显示在生日框中(如图 2 所示)。

在图 1 界面中输入姓名、选择出生日期后,点击“查询星座”按钮能够跳转到查询结果界面(如图 4 所示)。

若图 1 界面中的生日为空,则点击“查询星座”按钮时使用 Toast 给出提示信息“出生日期为空,请选择您的生日!”

在图 4 界面中,显示在图 1 界面中输入的姓名和出生日期,并根据出生日期计算出所属星座,在图 4 界面中显示出该星座对应的星座图片和星座特点的描述(读文件file1~file12),同时将图 4 界面的标题设置为该星座的名称。

安卓开发之星座查询

素材:

通过上述的要求,我们可以确定的的思路:

通过设计要求,我们需要两个页面实现跳转,第一个主页面需要包含姓名和出生日期,通过点击事件将该信息传递到第二个页面,通过对出生日期的对比,找到符合的内容(图片和文字描述)等。

首先我们先实现第一个页面,

安卓开发之星座查询

拆分布局,红色边框框住的都是TextView,基本没什么好说的,主要是下面生日输入框,这里我们采用的日历选择方式。

如图所示:

安卓开发之星座查询

首先我们需要设置下生日输入框的属性:

通过设置,取消输入框的获取焦点的功能,然后给他绑定一个点击事件:

这时候进入主方法区(MainActivity),new一个DatePickerDialog,重写里面的onDateSet方法,实现日期选择器:

这里日期选择的是Calendar类,Java原来的Date类,在JDK9已经被废弃了。

根据我们刚开始的分析的,第二个页面需要两个数据,名字和生日,这里我把这两个属性封装成对象传递:

注意这里的对象需要序列化,这是因为在传递的时候putExtra需要的

属性封装好了以后在点击Button触发点击事件,实现数据传递。

这里做了一下处理:当日期的数据为空的话,则使用Toast实现提醒并不跳转。

先看页面:

安卓开发之星座查询

从标题、用户名、出生日期和星座特点都是由第一页传递的数据显示的。

所以我们需要动态的处理数据。

先获取信息,设置姓名 出生日期等信息:

接下来对日期的处理来获得相应的数据。

提取了names,days,imgs,fileNames多个数组,星座名称,对应开始日,星座图片,星座文件等;

以days[]来说,处理成以下格式:

补零方便后续的下标计算方便;

处理日期和标题的设置:

设置星座图片:

星座特点的处理在不同的文件是不同的,这里是Assets文件夹的处理。

对应方法:

最后效果图:

原来想传GIF的,但是Gitee好像把它和谐了,只能放图片了。如果想获取素材和代码可以评论留言。

如果你看到这里或者正好对你有所帮助,希望能点个👍或者⭐感谢;

有错误的地方,欢迎在评论指出,作者看到会进行修改。