黑马程序员技术交流社区

标题: 【长沙校区】十年磨一剑【基哥笔记】Android基础Day03(UI控件 [打印本页]

作者: allen927    时间: 2015-10-26 09:14
标题: 【长沙校区】十年磨一剑【基哥笔记】Android基础Day03(UI控件
本帖最后由 allen927 于 2015-10-30 21:09 编辑


同样的课程、老师、就业,更好的学习环境,更低的学习成本!
内地学员,选择长沙校区,靠谱!!!
报名热线:0731-85833115
  QQ  : 2355535415

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:就是一个条目显示控件。


(掌握)listviewBaseAdapter的使用

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 层叠样式表  控制网页里面的控件  
为什么要使用样式?
方便于代码的维护和升级






作业:







下载资源

Doc笔记
课程视频代码
作业视频代码



相关链接:
长沙中心--黑马双元课堂JAVA入学辅导班1期火爆开班啦!!!
http://bbs.itheima.com/thread-241663-1-1.html
长沙黑马程序员学习激情无限“吊炸天”
http://bbs.itheima.com/forum.php?mod=viewthread&tid=245462&page=1&extra=#pid1878818
黑马程序员长沙校区生活圈,60秒搞定吃住学
http://bbs.itheima.com/thread-243108-1-1.html

作者: 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