论文部分内容阅读
1.1 课题主要任务目标和意义
随着手机的普及,手机软件已经和我们平时的生活息息相关,本系统就是以手机上搜房系统为课题,其主要目标是:实现基于手机客戶端的房产信息的搜索,将一些房产的信息如价格、年份、面积大小、地理位置等在手机屏幕上显示出来。
在整个系统设计实现过程中,主要涉及的开发工具是Eclipse,采用的数据库是SQLite,开发语言是Java。
2.1 系统整体简化流程图
整个系统分为主界面输入模块和结果显示模块,输入模块主要负责对检索房产所需必要信息的输入,并将这些数据传递到结果显示模块,而显示模块则是对传过来的数据通过对数据库的检索将最终得到的数据显示出来。这个系统的总体设计流程如图3-1,先初始化一些数据在String.xml文件中,在程序运行后,读取下拉菜单、单选按钮和文本框中所填入
的内容,将这些内容通过后台传到结果页面,在结果页面中调用数据检索功能,在数据库中将符合成绩的内容显示出来。
2.2 系统代码设计思想
在主页面的Activity中,初始化Spinner下拉菜单中的数据,数据存放在String.xml文件中。然后为Spinner设置监听器,通过监听器来实现下拉菜单选项的选择。同时还要为搜索按钮设置监听器,当按下按钮后,系统将Spinner、EditText等控件中的信息通过Intent传到结果页面。
在结果页面的Activity中的Oncreate()里调用HouseDatabaseAdapter数据库并对其初始化,然后再调用显示数据的方法showhouseinfo()来将数据显示给用户。
在HouseDatabaseAdapter中通过继承SQLiteOpenHelper来创建表并初始化表的数据,而表的一些列名则单独放在HouseDatabase.java文件中。具体流程见图2-1。
3.1 主界面输入模块实现
在这Main.xml页面中,通过线性布局,添加了LinearLayout、Tabhost、Textview、EditText、Button、Spinner、RadioGroup控件,通过这些控件实现页面的整体排布,同时通过HousingSearch.java来进行后台处理,最终将该页面上输入的数据传递到结果显示模块。
在Main.xml页面中本人采用的是LinearLayout布局,即线性布局。线性布局就是将物体(容器内的子组件)按照直线进行摆放的一种方式,这种布局和J2SE平台的流布局比较类似,或者像古典小说中的“一字长蛇阵”的阵势。
3.2 输入模块后台代码实现
在HousingSearch.java中主要功能就是对收入的数据读取并将其传递到显示界面。下面列举一些主要控件的实现和一些重要的方法。
1. Spinner监听
Android中的下拉列表组件(Spinner)和其他平台中的组合框有些类似,可以显示出当前的选项,并允许用户通过一个下拉列表修改当前的选项,所以它占用宝贵的屏幕资源较少。
2. Button监听
Button上面显示搜索作为标记,用户可以通过单击Button组件执行一些预定义的操作。点击Button后可以触发OnClickListener事件监听器,从而来实现Button的具体功能。
4.1 显示模块实现
显示界面主要是通过调用User.xml布局文件将得到的数据显示在ListView上,运行结果如图4-1所示:
这个页面做的比较简单主要的就是ListView控件的使用。android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。.
根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter。该系统中采用的是第三个适配器。
4.2 显示模块后台代码实现
在Result.java文件中主要是一个showhouseinfo()方法来实现数据的显示。在这个方法中首先是将通过Intent传过来的数据读取出来。在这里也要先创建一个Intent对象,再通过getStringExtra()方法来将传过来的数据读出来并赋值给三个变量。然后调用gethouse()方法来调用数据库,如下所示:
public Cursor gethouse(String a,String b) {
String sql="SELECT "+House.House_ID +" AS _id"+", " +House.House_City+", " +House.House_Size+", "+House.House_Year+","+House.House_Price +" FROM "+ House.House_TABLE_NAME + " where " + House.House_City + "= + a + and " + House.House_Year + "= + b + " ;
Log.i("selectSql", sql);
Cursor cursor = db.rawQuery(sql, null);
return cursor;
}
其中sql语句是对数据库中数据的筛选并返回。
数据库则是在HouseDataAdapter.java中创建的,具体如下:
public void onCreate(SQLiteDatabase db) { String sql="CREATE TABLE " + House.House_TABLE_NAME + "("
+ House.House_ID + " integer primary key,"
+ House.House_City + " varchar,"
+ House.House_Size + " varchar,"
+ House.House_Year + " varchar,"
+ House.House_Price + " varchar"
+");";
Log.i("createSql", sql);
db.execSQL(sql);
其中House.House_City等是在HousDatabase.java中創建的表名等。
最后通过SimpleCursorAdapter来实现最终的结果显示,具体见下:
if (cursor != null) {
startManagingCursor(cursor);
String[] from = new String[] { //HouseDatabase.House.House_ID,
HouseDatabase.House.House_City,
HouseDatabase.House.House_Size,
HouseDatabase.House.House_Year,
HouseDatabase.House.House_Price,
};
int[] to = new int[] { R.id.txt1, R.id.txt2, R.id.txt3,R.id.txt4
};
SimpleCursorAdapter notes = new SimpleCursorAdapter(this,
R.layout.user, cursor, from, to);
listview.setAdapter(notes);
}
if(!cursor.moveToNext())
txt.setText("没有你所需要的数据");
}
5.1 课题总结
这里基于研究工作进行总结,该系统适用于Android平台下的各种手机,实现了通过过输入一些关键房产信息,进行查询,最后通过可视化的角度将结果输出在手机界面上的功能。
随着手机的普及,手机软件已经和我们平时的生活息息相关,本系统就是以手机上搜房系统为课题,其主要目标是:实现基于手机客戶端的房产信息的搜索,将一些房产的信息如价格、年份、面积大小、地理位置等在手机屏幕上显示出来。
在整个系统设计实现过程中,主要涉及的开发工具是Eclipse,采用的数据库是SQLite,开发语言是Java。
2.1 系统整体简化流程图
整个系统分为主界面输入模块和结果显示模块,输入模块主要负责对检索房产所需必要信息的输入,并将这些数据传递到结果显示模块,而显示模块则是对传过来的数据通过对数据库的检索将最终得到的数据显示出来。这个系统的总体设计流程如图3-1,先初始化一些数据在String.xml文件中,在程序运行后,读取下拉菜单、单选按钮和文本框中所填入
的内容,将这些内容通过后台传到结果页面,在结果页面中调用数据检索功能,在数据库中将符合成绩的内容显示出来。
2.2 系统代码设计思想
在主页面的Activity中,初始化Spinner下拉菜单中的数据,数据存放在String.xml文件中。然后为Spinner设置监听器,通过监听器来实现下拉菜单选项的选择。同时还要为搜索按钮设置监听器,当按下按钮后,系统将Spinner、EditText等控件中的信息通过Intent传到结果页面。
在结果页面的Activity中的Oncreate()里调用HouseDatabaseAdapter数据库并对其初始化,然后再调用显示数据的方法showhouseinfo()来将数据显示给用户。
在HouseDatabaseAdapter中通过继承SQLiteOpenHelper来创建表并初始化表的数据,而表的一些列名则单独放在HouseDatabase.java文件中。具体流程见图2-1。
3.1 主界面输入模块实现
在这Main.xml页面中,通过线性布局,添加了LinearLayout、Tabhost、Textview、EditText、Button、Spinner、RadioGroup控件,通过这些控件实现页面的整体排布,同时通过HousingSearch.java来进行后台处理,最终将该页面上输入的数据传递到结果显示模块。
在Main.xml页面中本人采用的是LinearLayout布局,即线性布局。线性布局就是将物体(容器内的子组件)按照直线进行摆放的一种方式,这种布局和J2SE平台的流布局比较类似,或者像古典小说中的“一字长蛇阵”的阵势。
3.2 输入模块后台代码实现
在HousingSearch.java中主要功能就是对收入的数据读取并将其传递到显示界面。下面列举一些主要控件的实现和一些重要的方法。
1. Spinner监听
Android中的下拉列表组件(Spinner)和其他平台中的组合框有些类似,可以显示出当前的选项,并允许用户通过一个下拉列表修改当前的选项,所以它占用宝贵的屏幕资源较少。
2. Button监听
Button上面显示搜索作为标记,用户可以通过单击Button组件执行一些预定义的操作。点击Button后可以触发OnClickListener事件监听器,从而来实现Button的具体功能。
4.1 显示模块实现
显示界面主要是通过调用User.xml布局文件将得到的数据显示在ListView上,运行结果如图4-1所示:
这个页面做的比较简单主要的就是ListView控件的使用。android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。.
根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter。该系统中采用的是第三个适配器。
4.2 显示模块后台代码实现
在Result.java文件中主要是一个showhouseinfo()方法来实现数据的显示。在这个方法中首先是将通过Intent传过来的数据读取出来。在这里也要先创建一个Intent对象,再通过getStringExtra()方法来将传过来的数据读出来并赋值给三个变量。然后调用gethouse()方法来调用数据库,如下所示:
public Cursor gethouse(String a,String b) {
String sql="SELECT "+House.House_ID +" AS _id"+", " +House.House_City+", " +House.House_Size+", "+House.House_Year+","+House.House_Price +" FROM "+ House.House_TABLE_NAME + " where " + House.House_City + "= + a + and " + House.House_Year + "= + b + " ;
Log.i("selectSql", sql);
Cursor cursor = db.rawQuery(sql, null);
return cursor;
}
其中sql语句是对数据库中数据的筛选并返回。
数据库则是在HouseDataAdapter.java中创建的,具体如下:
public void onCreate(SQLiteDatabase db) { String sql="CREATE TABLE " + House.House_TABLE_NAME + "("
+ House.House_ID + " integer primary key,"
+ House.House_City + " varchar,"
+ House.House_Size + " varchar,"
+ House.House_Year + " varchar,"
+ House.House_Price + " varchar"
+");";
Log.i("createSql", sql);
db.execSQL(sql);
其中House.House_City等是在HousDatabase.java中創建的表名等。
最后通过SimpleCursorAdapter来实现最终的结果显示,具体见下:
if (cursor != null) {
startManagingCursor(cursor);
String[] from = new String[] { //HouseDatabase.House.House_ID,
HouseDatabase.House.House_City,
HouseDatabase.House.House_Size,
HouseDatabase.House.House_Year,
HouseDatabase.House.House_Price,
};
int[] to = new int[] { R.id.txt1, R.id.txt2, R.id.txt3,R.id.txt4
};
SimpleCursorAdapter notes = new SimpleCursorAdapter(this,
R.layout.user, cursor, from, to);
listview.setAdapter(notes);
}
if(!cursor.moveToNext())
txt.setText("没有你所需要的数据");
}
5.1 课题总结
这里基于研究工作进行总结,该系统适用于Android平台下的各种手机,实现了通过过输入一些关键房产信息,进行查询,最后通过可视化的角度将结果输出在手机界面上的功能。