代码改变世界

用户录入信息

2015-06-23 19:18  LinlinLee  阅读(637)  评论(0编辑  收藏  举报

                                             

      图1-1用户录入流程图

 

 

 图1-2用户录入界面                          图1-3 用户选择信息界面

     用户录入的目的:每个学校都有很多的教学楼,所对应的教室信息庞大,将数据手动输入数据库工作量极大,且适用性不强。为了解决这一问题,选择让用户来录入教室的状态,通过概率筛选来筛选出正确信息以便用户查询。  

    用户录入数据的整个流程如图1-1所示。  

    首先用户录入数据,以便获取每个教学楼的空教室情况。录入界面如图1-2所示。用户点击选择教学楼,跳转下一个界面从教学楼开始进行一一选择,选择界面如图1-3所示。

 

  图1-4 查询及传递数据

图1-5 textview添加适配器

图1-6 适配器接收数据   

      其中,界面中的数据由用户的选择动态生成,界面动态显示的主要实现为首先获取用户在本界面选择的信息str,以此为条件从数据库中查询相对应的下一层的数据,如用户选择20号教学楼,以此为条件查询项对应的楼层,将数据传给下一个activity,在用户下一个选择信息界面显示出来。其中,查询及向下一个activity传数据的代码如图1-4所示。而动态显示的目的是为了匹配用户选择的数据。比如,用户选择20号教学楼,则下一个界面楼层显示20号教学楼的1、2、3、4、5、6层,而选择21号教学楼动态显示21号教学楼的1、2、3、4楼,实现数据之间的相关联,体现数据的严谨性。该楼层数据由用户选择的教学楼后从数据库中读到其教学楼对应的楼层。该功能通过listview和baseadapter实现。baseadapter接收从数据库查到的数据从而在listview中显示出来.其中,listview加适配器的部分代码如图1-5所示。适配器接受上一个activity传来的数据以便动态显示的部分代码如图1-6所示。

 

 图1-5选择录入信息后的界面

      当用户一次选择完后,跳到最初选择的界面,并在其中显示用户的选择结果。如图1-3所示。该实现遇到的主要问题是:因为录入界面在fragment控件中,数据传输稍微复杂一点。该问题采取的方法为:由选择教学楼所在的activity获取的用户触发的listview选择的数据传给录入界面所在的mainactivity,再由mainactivity传给录入界面的fragment,录入的fragment将数据读出并在textview中显示出来。

      当用户选择确认想要录入,获取当前登录用户,从数据库的录入表中查看该用户是否已经录入过该教室且为该用户所选的时间,若已录入过,则提醒用户“已录入过该条信息”,否则将该条信息录入数据库,并标明是哪一个用户录入的。以防用户多次录入同一条信息而使数据的真实性变差。