事务:银行转账张三 给李四 200;张三的账户 -200块钱 //sql语句李四的账户 +200块钱 //sql语句 android下使用数据库的事务 1.打开数据库的事务2.执行sql语句3.设置事务的状态 (true)4.提交数据 true 提交数据 false 回滚数据 if (db.isOpen()) {try {// 开启数据库的事务db.beginTransaction();..............................db.setTransactionSuccessful();}// 显示的设置事务是否成功catch (Exception e) {} finally {//放在这里确保事务能够正常的结束db.endTransaction();db.close();}}ListView 一个重要的控件把XML文件转换成一个View对象,安卓提供的有一个充气泵。可以把某个扁的XML吹成一个饱满的View对象。activity 是用来显示用户界面的,你可理解为是一个View容器。布局转换成View对象?inflater 是系统的一个服务 初始化服务inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);// BaseAdapter 是 google的工程师 给ListAdapter的默认实现,因为直接实现ListAdapter方法太多了,所以我们用继承 //这个抽象类的方法。这种方法是实现ListView适配器,最原始的方法。 private class MyAdapter extends BaseAdapter{ /** * 返回当前listview有多少个条目 */public int getCount() {return list.size();}/** * 返回当前position位置对应的条目 的object对象 */public Object getItem(int position) {return list.get(position);}/** * 返回当前position位置 某个条目的id */public long getItemId(int position) {return position;}/** * 返回每一个条目显示的具体内容 * 理论上讲有多少个条目就应该被调用多少次,其实是更多次。 * 因为首先它会计算当前这个界面会有多少个条目出现,根据下面的公式。 * 当滚屏的时间,每显示一次都需要调用一次getView的方法。 * * 计算当前界面 会有多少个条目出现 * 1.得到每一个textview的高度 * 2.得到listview的高度 * 3. listview高度/textview高度 = 得到了一个屏幕显示的textview的个数 * * listview的每一个条目的显示 * 都需要调用一次getview的方法 * 屏幕上有多个item显示 就会调用多少getview的方法, * 而且每显示一次就调用一次。 * * parent 代表的是 当前的这个listview * convertView是listView对象的一个缓存。 */public View getView(int position, View convertView, ViewGroup parent) {/*TextView tv = new TextView(DbActivity.this);tv.setText("我是第"+position+"个");Log.i("aaaaa", "我被调用 了"+position);return tv;*//*TextView tv = new TextView(DbActivity.this);Person person = list.get(position);tv.setText(person.getName()+" | " + person.getAccount());return tv;*/View view = inflater.inflate(R.layout.item, null);//接下来,我们就可以从这个view里面去寻找控件,因为我们之前是通过从当前的Acivity中找的空间。Person person = list.get(position);TextView name = (TextView) view.findViewById(R.id.name);TextView phone = (TextView) view.findViewById(R.id.phone);name.setText("姓名:"+person.getName());phone.setText("手机:"+person.getAccount());return view;}} 点击事件import android.widget.AdapterView.OnItemClickListener;listView.setOnItemClickListener(new OnItemClickListener() { /** * 通过Debug我们知道了这几个参数的含义 * parent代表的是当前的ListView * view代表当前被点击条目的View对象 * @param position The position of the view in the adapter. * @param id The row id of the item that was clicked. */@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {//方法一/*TextView name = (TextView) view.findViewById(R.id.name);TextView phone = (TextView) view.findViewById(R.id.phone);Toast.makeText(DbActivity.this,name.getText().toString(), Toast.LENGTH_SHORT).show();*///方法二Person person = list.get(position);Toast.makeText(DbActivity.this,person.getAccount(), Toast.LENGTH_SHORT).show();//方法三Person p = (Person) parent.getItemAtPosition(position);}});其实上面的那个方法已经是谷歌工程师采用的优化过的适配器,但是到了具体的业务它又提出了更为精细的适配器,供我们方便的调用,如SimpleAdapter,ArrayAdaper,SimpleCursorAdapter。其实还是自定义的Adapter比较强大。SimpleAdapter其实还是继承了BaseAdapter类。实现的还是我们自定义的那些方法。一定要看源码,我们可以直接知道它是怎么实现的,其实跟我们自定义实现是一样的。在TextView中,android:text="phone",是当没有为这个东西赋值的时间会显示这具值,如果为其赋值后,就不再显示这个值,相当于一个默认值 。 //SimpleAdpater List
- Android(安卓)录音实现方法、仿微信语音、麦克风录音、发送语音
- 配置dialog无标题的几种方法
- setImageResource和setImageDrawable区别
- android Onmeasure
- 一培训机构设计的学习android课程内容:供大家参考
- android 中findViewById()为null的可能原因
- Android(安卓)sdk 安装后 找不到adb.exe问题解决方法
- android 退出 activity
- Android(安卓)中的内容观察者ContentObserver
随机推荐
-
Android中的消息推送
-
Android学习之路(1) -- APK签名
-
Android L / 5.0 帮助文档 API21文档 sam
-
Android 入门文档_Android 4.0后JNI所做
-
Android(安卓)澶嶄範_Processes and Thre
-
Android尺寸单位含义及相互换算
-
Android 蓝牙编程之 Java socket编程
-
Android Linker 与 SO 加壳技术
-
深入解析android log的分析方法(1)
-
Android的持续化集成及多版本打包