androidUI控件

(掌握)OOP增删改查

android考虑到很多的程序员可能对于sql语句不是很熟悉,所以就设计了一套面向对象的sql.使开发变的简单

androidUI控件_第1张图片

androidUI控件_第2张图片

androidUI控件_第3张图片

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();
	}
(了解)数据库的事务
androidUI控件_第4张图片

数据库的升级

修改数据库的版本号  SqliteOpenHelper工具类 

重新运行应用程序,必须要调用SqliteOpenHelper.getXXXDatabase()  

  才会调用onUpgrade()方法

要给person表 添加一个新的字段  account:账户 

androidUI控件_第5张图片

androidUI控件_第6张图片


更多的事务操作都是在服务器上执行。

例子:鸡哥找老张借钱

androidUI控件_第7张图片

(掌握)Scrollview垂直滑动控件

ScrollView是一个可以垂直滑动的控件 在应用的详情页就使用了该控件

androidUI控件_第8张图片

androidUI控件_第9张图片

ScrollView只能有一个子节点

如果ScrollView要放置很多控件,就只能进行布局的包裹

androidUI控件_第10张图片

动态给ScrollView添加内容

androidUI控件_第11张图片

androidUI控件_第12张图片

(掌握)listview的原理

androidUI控件_第13张图片        androidUI控件_第14张图片

该页面的内容每个条目不同                                         该页面每个条目的内容相同

ScrollView只能用于控件比较少的界面,如果数据有上千上万条,那么使用ScrollView就不好了,因为ScrollView就把所有的控件进行初始化,这是非常消耗性能的操作,所以android就设计了一个类ListView来专门处理列表数据条目的显示。

ListView自动回收没有在屏幕上显示的控件,来优化性能。

 

ListView的使用场景:处理条目比较多,并且每个条目都非常相似的场景。

ListView:就是一个条目显示控件。

(掌握)listview和BaseAdapter的使用

androidUI控件_第15张图片

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下的布局资源加载到内存中

androidUI控件_第16张图片

布局加载器:系统服务


查询person表里面的数据进行列表显示

androidUI控件_第17张图片


资源找不到异常


如果你给TextView设置一个int类型的参数。他就会到资源里面进行查找。


androidUI控件_第18张图片

(掌握)常用数据适配器

ArrayAdapter  数组适配器 用于简单的文字列表

SimpleAdapter 简单适配器        用于条目只有两个控件的列表

androidUI控件_第19张图片

androidUI控件_第20张图片

androidUI控件_第21张图片这样的效果就是可以ArrayAdapter比较简单


androidUI控件_第22张图片这样的效果可以使用SimpleAdapter比较简单

androidUI控件_第23张图片

(掌握)对适配器的理解

androidUI控件_第24张图片

(掌握)对话框

1 普通对话框

androidUI控件_第25张图片

提醒用户    Toast  对话框Dialog


设计模式:构建器模式

例子:要建房子   瓦工:把所有的材料、钱 房子

所有:要创建对话框 就需要先构建:Builder对象

然后要数据给Builder,再通过Builder创建一个对话框,

最后显示对话框


androidUI控件_第26张图片

androidUI控件_第27张图片

连写

androidUI控件_第28张图片

2列表对话框

androidUI控件_第29张图片

androidUI控件_第30张图片

3 单选对话框

androidUI控件_第31张图片

androidUI控件_第32张图片

4 多选对话框

androidUI控件_第33张图片

androidUI控件_第34张图片

5 不确定进度条对话框

androidUI控件_第35张图片


6 水平进度条对话框

androidUI控件_第36张图片

androidUI控件_第37张图片

( 掌握)常见控件

1单选按钮:RadioButton 

他必须放置在RadioGroup里面使用


androidUI控件_第38张图片

androidUI控件_第39张图片

2Spinner:下拉列表   

androidUI控件_第40张图片

androidUI控件_第41张图片

androidUI控件_第42张图片

3SeekBar:拖动条


androidUI控件_第43张图片

androidUI控件_第44张图片

4进度条:

Progress

不确定  



水平


androidUI控件_第45张图片

5自动完成提示框:

AutoCompleteTextView

androidUI控件_第46张图片

androidUI控件_第47张图片

6多次输入自动完成提示框


androidUI控件_第48张图片

androidUI控件_第49张图片

控件的常规操作

1 配置

2 findViewById

3 setXXX() setAdapter()

4 setOnXXXListener()

5getXXX() 

(掌握)样式

样式:style

     控制控件的显示

样式:css 层叠样式表  控制网页里面的控件 

为什么要使用样式?

方便于代码的维护和升级


androidUI控件_第50张图片

androidUI控件_第51张图片


你可能感兴趣的:(Android)