黑马程序员技术交流社区
标题: 【长沙校区】十年磨一剑【基哥笔记】Android基础Day03(UI控件 [打印本页]
作者: allen927 时间: 2015-10-26 09:14
标题: 【长沙校区】十年磨一剑【基哥笔记】Android基础Day03(UI控件
本帖最后由 allen927 于 2015-10-30 21:09 编辑
同样的课程、老师、就业,更好的学习环境,更低的学习成本!
android基础Day03(UI控件)
《 如果感觉今天的知识点都会了,可以直接做作业,来进行检测》
•(掌握)OOP增删改查android考虑到很多的程序员可能对于sql语句不是很熟悉,所以就设计了一套面向对象的sql.使开发变的简单
oop 面相对象的sql
//对数据库进行操作 (crud)
public void add(View v){
SQLiteDatabase db = helper.getWritableDatabase();//获取一个可写的数据库
if(db.isOpen()){//判断数据库是否打开
//insert into person
ContentValues values = new ContentValues();//对于HashMap的一个封装
values.put("name", "陈洁仪");
db.insert("person", null, values);//最后系统会自己去拼接sql
}
db.close();//关闭数据库
}
public void update(View v){
SQLiteDatabase db = helper.getWritableDatabase();//获取一个可写的数据库
if(db.isOpen()){//判断数据库是否打开
ContentValues values = new ContentValues();
values.put("name", "韩红");
String whereClause = "_id = ?";
String[] whereArgs = new String[]{"3"};
db.update("person", values, whereClause, whereArgs);
}
db.close();
}
public void query(View v){
SQLiteDatabase db = helper.getReadableDatabase();
if(db.isOpen()){
//游标(结果集)
/**
* table 表, columns 查询列, selection 查询条件, selectionArgs 查询参数,
* groupBy 分组, having 分组条件, orderBy 排序
*/
Cursor cursor = db.query("person", new String[]{"*"}, null, null, null, null, null);
while(cursor.moveToNext()){
int _id = cursor.getInt(0);
String name = cursor.getString(cursor.getColumnIndex("name"));
Log.i(TAG, "_id:"+_id+",name:"+name);
}
cursor.close();//关闭游标
}
db.close();
}
public void delete(View v){
SQLiteDatabase db = helper.getWritableDatabase();//获取一个可写的数据库
if(db.isOpen()){//判断数据库是否打开
String whereClause = "_id = ?";
String[] whereArgs = new String[]{"3"};
db.delete("person", whereClause, whereArgs);
}
db.close();
}
•(了解)数据库的事务
数据库的升级:
1 修改数据库的版本号 SqliteOpenHelper工具类
2 重新运行应用程序,必须要调用SqliteOpenHelper.getXXXDatabase()
才会调用onUpgrade()方法
要给person表 添加一个新的字段 account:账户
更多的事务操作都是在服务器上执行。
例子:鸡哥找老张借钱
•(掌握)Scrollview垂直滑动控件
ScrollView是一个可以垂直滑动的控件 在应用的详情页就使用了该控件
ScrollView只能有一个子节点
如果ScrollView要放置很多控件,就只能进行布局的包裹。
动态给ScrollView添加内容
•(掌握)listview的原理
该页面的内容每个条目不同 该页面每个条目的内容相同
ScrollView只能用于控件比较少的界面,如果数据有上千上万条,那么使用ScrollView就不好了,因为ScrollView就把所有的控件进行初始化,这是非常消耗性能的操作,所以android就设计了一个类ListView来专门处理列表数据条目的显示。
ListView会自动回收没有在屏幕上显示的控件,来优化性能。
ListView的使用场景:处理条目比较多,并且每个条目都非常相似的场景。
ListView:就是一个条目显示控件。
•(掌握)listview和BaseAdapter的使用
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView) findViewById(R.id.lv);
//给listView设置数据
lv.setAdapter(new BaseAdapter() {
//创建条目
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = new TextView(getApplicationContext());//创建一个TextView
tv.setText("我是中国人,我喜欢日本人:"+position);
tv.setTextSize(25);
//隔行变色
if(position %2 == 0){
tv.setTextColor(Color.RED);
}else{
tv.setTextColor(Color.YELLOW);
}
return tv;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
//条目的数量
@Override
public int getCount() {
return 30;
}
});
}
}
•(掌握)布局填充器layoutinflater服务
布局加载器 布局填充器 打气筒
可以把res/layout下的布局资源加载到内存中
布局加载器:系统服务
查询person表里面的数据进行列表显示
资源找不到异常。
如果你给TextView设置一个int类型的参数。他就会到资源里面进行查找。
•(掌握)常用数据适配器ArrayAdapter 数组适配器 用于简单的文字列表
SimpleAdapter 简单适配器 用户条目只有两个控件的列表
这样的效果就是可以
ArrayAdapter比较简答
这样的效果就可以使用
SimpleAdapter 比较简单
•(掌握)对适配器的理解
•(掌握)对话框 1普通对话框
提醒用户 Toast 对话框Dialog
设计模式:构建器模式
例子:要建房子 瓦工:把所有的材料 、钱 房子
所有:要创建对话框 就需要先构建:Builder对象
然后要数据给Builder ,再通过Builder创建一个对话框,
最后显示对话框
连写
2列表对话框
3 单选对话框
4 多选对话框
5 不确定进度条对话框
6 水平进度条对话框
•(掌握)常见控件 1单选按钮:RadioButton
他必须放置在RadioGroup里面使用
2Spinner:下拉列表
3SeekBar:拖动条
4进度条:
Progress
不确定
水平
5自动完成提示框:
AutoCompleteTextView
6多次输入自动完成提示框
控件的常规操作
1 配置
2 findViewById
3 setXXX() setAdapter()
4 setOnXXXListener()
5getXXX()
•(掌握)样式样式:style
控制控件的显示
样式:css 层叠样式表 控制网页里面的控件
为什么要使用样式?
方便于代码的维护和升级
作业:
下载资源
相关链接:
长沙中心--黑马双元课堂JAVA入学辅导班1期火爆开班啦!!!
长沙黑马程序员学习激情无限“吊炸天”
作者: Kris 时间: 2015-10-26 09:50
学习了~
作者: ReNeXt 时间: 2015-10-26 18:59
好详细啊
作者: 张美老师 时间: 2015-10-29 10:04
作者: 枫烬 时间: 2015-10-29 23:55
一天学的东西够多的,数据库那地方调用第三方的比较方便,用自带的这个感觉太容易出问题了
作者: 梁名扬 时间: 2015-10-30 22:06
前排支持我的基哥
作者: dai2686779 时间: 2015-10-30 23:23
6666666666666
作者: 水小新 时间: 2015-11-5 17:35
前排支持我的基哥
作者: wodesteaammajia 时间: 2015-11-5 19:53
收藏以后用
作者: 铁苯锌 时间: 2015-11-6 07:06
赞,写的真是太好了
作者: 微笑、守望 时间: 2015-11-6 23:12
长沙校区加油!
作者: 微笑、守望 时间: 2015-11-7 11:35
好东西!
作者: orgcheng 时间: 2015-11-8 13:58
赞,写的真是太好了
作者: liuyang10908126 时间: 2015-11-8 22:57
顶基哥!
作者: zhengsx 时间: 2015-11-8 23:03
(。・∀・)ノ゙嗨
作者: 微笑、守望 时间: 2015-11-8 23:18
好东西每日一顶!
作者: young_ants 时间: 2015-11-9 21:34
66666666666
作者: 王玉东 时间: 2015-11-9 21:47
顶顶顶!!!!!!
作者: 微笑、守望 时间: 2015-11-9 22:28
每日一顶!
作者: bobo大王 时间: 2015-11-9 23:19
这几篇我都收藏了,以后有空要多看下了
作者: daniu2015 时间: 2015-11-9 23:34
感谢!已收藏!
作者: 18273250088 时间: 2015-11-10 19:10
为长沙校区点赞。。。。。
作者: 過眼焱雲シ 时间: 2015-11-10 21:57
顶贴顶贴顶贴顶贴!赞一个
作者: jia7604112 时间: 2015-11-10 22:57
好东西,赞一个
作者: 784080960 时间: 2015-11-11 18:48
顶一下顶一次啊
作者: 微笑、守望 时间: 2015-11-12 23:23
每日一顶
作者: 邸永明 时间: 2015-11-13 22:35
顶,这几篇一直在看,阳哥好棒
作者: Venus_1991 时间: 2015-11-14 07:19
顶,不错~~
作者: flybeifeng 时间: 2015-11-14 20:04
收藏以后用~~
作者: flybeifeng 时间: 2015-11-14 20:13
收藏一下~~~~
作者: 王玉东 时间: 2015-11-14 21:37
给力,谢谢分享!!!
作者: you135 时间: 2015-11-14 22:38
支持 基哥
作者: LLLLL 时间: 2015-11-15 13:47
6566666666666666
作者: 西伯利亚的雪景 时间: 2015-11-16 19:34
老规矩,先收藏在看,顺便顶一下贴。
作者: 半指流沙 时间: 2015-11-16 21:33
感谢分享....................
作者: a3277400a 时间: 2015-11-16 21:55
赞赞。顶起!
作者: 菇凉斋 时间: 2016-4-1 00:18
讲解的很细,赞一个!!!加油
作者: 123liu123 时间: 2016-4-1 22:45
谢谢基哥分享,赞一个......
作者: 菇凉斋 时间: 2016-4-2 23:05
赞一个,谢基哥分享!!!!
作者: 菇凉斋 时间: 2016-4-3 00:25
很实用赞一个,谢谢基哥............
作者: 菇凉斋 时间: 2016-4-4 23:49
继续加油,基哥赞一个!!!!
作者: zhouboyangliu 时间: 2016-4-5 23:41
多学点 总是好的
作者: 菇凉斋 时间: 2016-4-7 01:53
加油基哥赞赞赞,顶一个!!!!
作者: 菇凉斋 时间: 2016-4-8 23:05
顶一个笔记超级不错的!!!!!!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |