A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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期火爆开班啦!!!
长沙黑马程序员学习激情无限“吊炸天”
黑马程序员长沙校区生活圈,60秒搞定吃住学
http://bbs.itheima.com/thread-243108-1-1.html

43 个回复

倒序浏览
学习了~
回复 使用道具 举报
好详细啊
回复 使用道具 举报
回复 使用道具 举报
一天学的东西够多的,数据库那地方调用第三方的比较方便,用自带的这个感觉太容易出问题了
回复 使用道具 举报
前排支持我的基哥
回复 使用道具 举报
6666666666666
回复 使用道具 举报
前排支持我的基哥
回复 使用道具 举报
收藏以后用
回复 使用道具 举报
赞,写的真是太好了
回复 使用道具 举报
长沙校区加油!
回复 使用道具 举报
好东西!
回复 使用道具 举报
赞,写的真是太好了
回复 使用道具 举报
顶基哥!
回复 使用道具 举报
(。・∀・)ノ゙嗨
回复 使用道具 举报
好东西每日一顶!
回复 使用道具 举报
66666666666
回复 使用道具 举报
顶顶顶!!!!!!
回复 使用道具 举报
每日一顶!
回复 使用道具 举报
bobo大王 来自手机 中级黑马 2015-11-9 23:19:54
20#
这几篇我都收藏了,以后有空要多看下了
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马