不错的帖子:

分享一个Android火焰效果程序
http://www.eoeandroid.com/thread-210395-1-1.html

android 查询工具源代码
http://www.eoeandroid.com/thread-210365-1-1.html

Android在线音乐播放器
http://www.eoeandroid.com/thread-210352-1-1.html

-------------------正文--------------------------

原文链接:http://www.eoeandroid.com/thread-201372-1-1.html

继上一章的数据,继续添加内容
item.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="horizontal" >    <TextView        android:id="@+id/txtName"        android:layout_width="120dp"        android:layout_height="wrap_content"        android:text="xxxxx" />    <TextView        android:id="@+id/txtPhone"        android:layout_width="150dp"        android:layout_height="wrap_content"        android:text="xxxxx" />    <TextView        android:id="@+id/txtAmount"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="2000" /></LinearLayout>

main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >        <LinearLayout         android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:orientation="horizontal">                <TextView             android:layout_width="120dp"            android:layout_height="wrap_content"            android:text="@string/name"/>                <TextView             android:layout_width="120dp"            android:layout_height="wrap_content"            android:text="@string/phone"/>                <TextView             android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:text="@string/amount"/>            </LinearLayout>    <ListView        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:id="@+id/lstShow" /></LinearLayout>
package cn.itcast.db;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import cn.itcast.domain.Person;import cn.itcast.domain.PersonAdapter;import cn.itcast.service.PersonService;import android.app.Activity;import android.database.Cursor;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.SimpleCursorAdapter;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends Activity {        //在Android平台上,集成了一个嵌入式关系型数据库——SQLite        //SQLite3支持NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型        //虽然它支持的类型只有5种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p, s)等数据        //只不过在运行或保存时会转成对应的五种数据类型        //SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么        private ListView lstShow;        private PersonService personService;        @Override        public void onCreate(Bundle savedInstanceState) {                super.onCreate(savedInstanceState);                setContentView(R.layout.main);                personService = new PersonService(this);                                lstShow = (ListView)this.findViewById(R.id.lstShow);                lstShow.setOnItemClickListener(new ItemClickListener());                //show();                //show2();                show3();        }                private final class ItemClickListener implements OnItemClickListener{                @Override                public void onItemClick(AdapterView<?> parent, View view, int position,                                long id) {                                                ListView lView = (ListView)parent;                        //和show()3配对                        Person person = (Person)lView.getItemAtPosition(position);                        Toast.makeText(getApplicationContext(), person.getId().toString(), 1).show();                                                //和show()2配对                        Cursor cursor = (Cursor)lView.getItemAtPosition(position);                        int personId = cursor.getInt(cursor.getColumnIndex("_id"));                        Toast.makeText(getApplicationContext(), personId, 1).show();                                                //和show()配对                        List<HashMap<String, Object>> hashMap = (List<HashMap<String, Object>>)lView.getItemAtPosition(position);                        int Id = Integer.valueOf(hashMap.get(personId).get("personId").toString());                        Toast.makeText(getApplicationContext(), Id, 1).show();                }                        }        //自定义适配器        private void show3() {                List<Person> persons = personService.getScrollData(0, 20);                PersonAdapter adapter = new PersonAdapter(this, persons, R.layout.item);                lstShow.setAdapter(adapter);        }        private void show2() {                Cursor cursor = personService.getCursorScrollData(0, 20);                SimpleCursorAdapter adapter =                         new SimpleCursorAdapter(this, R.layout.item, cursor,                                        new String[]{"name", "phone", "amount"},                                         new int[]{R.id.txtName, R.id.txtPhone, R.id.txtAmount});                lstShow.setAdapter(adapter);                                //直接运行会报错,原因是SimpleCursorAdapter要求结果集中必须包含_id字段                //修复方法:1.把数据库表中的主键名称personId改为_id                //2.处理查询后的结果集        }        private void show() {                List<Person> persons = personService.getScrollData(0, 20);                List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();                for(Person person : persons){                        HashMap<String, Object> item = new HashMap<String, Object>();                        item.put("name", person.getName());                        item.put("phone", person.getPhone());                        item.put("amount", person.getAmount());                        item.put("id", person.getId());                        data.add(item);                }                SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item,                                new String[]{"name", "phone", "amount"},                                 new int[]{R.id.txtName, R.id.txtPhone, R.id.txtAmount});                lstShow.setAdapter(adapter);                //listView内部操作过程                //{                //        int total = adapter.getCount(); //用于得到数据总数                //        int perpage = 7;                //        for (int i = 0; i < perpage; i++) {                //                View view = adapter.getView(i, convertView, parent); //用于得到条目对应的View                //                //显示条目                //        }                //}        }}
package cn.itcast.domain;import java.util.List;import cn.itcast.db.R;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;public class PersonAdapter extends BaseAdapter {        private List<Person> persons; //绑定数据        private int resource; //绑定条目界面        private LayoutInflater inflater;                public PersonAdapter(Context context, List<Person> persons, int resouce){                this.persons = persons;                this.resource = resource;                inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        }        @Override        public int getCount() {                return persons.size(); //得到数据总数        }        @Override        public Object getItem(int position) {                return persons.get(position);        }        @Override        public long getItemId(int position) {                return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {                TextView txtName = null;                TextView txtPhone = null;                TextView txtAmount = null;                //这样提升性能                if(convertView == null){ //表明现在是第1页                        inflater.inflate(resource, null); //生成条目界面对象                                                txtName = (TextView)convertView.findViewById(R.id.txtName);                        txtPhone = (TextView)convertView.findViewById(R.id.txtPhone);                        txtAmount = (TextView)convertView.findViewById(R.id.txtAmount);                                                ViewCache cache = new ViewCache();                        cache.txtName = txtName;                        cache.txtPhone = txtPhone;                        cache.txtAmount = txtAmount;                                                convertView.setTag(cache);                }else{                        ViewCache cache = (ViewCache)convertView.getTag();                        txtName = cache.txtName;                        txtPhone = cache.txtPhone;                        txtAmount = cache.txtAmount;                }                                                Person person = persons.get(position);                //下面代码实现数据绑定                txtName.setText(person.getName());                txtPhone.setText(person.getPhone());                txtAmount.setText(person.getAmount().toString());                                return null;        }                private final class ViewCache{                public TextView txtName;                public TextView txtPhone;                public TextView txtAmount;        }}

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. Android(安卓)listview动态添加删除测试
  4. Android客户端解析web服务器XML数据小问题
  5. Android通过http协议POST传输方式
  6. 【译】Google官方推出的Android架构组件系列文章(一)App架构指南
  7. Top10 应用都在用的Android最新知识
  8. android连接mysql数据库
  9. Android通过共享Uid实现两个应用间的数据库资源共享

随机推荐

  1. Android分辨率适配layout布局的问题
  2. java.lang.IllegalStateException Fragme
  3. android contentprovider学习(遇到最满意
  4. 4412开发板Android教程——Android平台简
  5. Android(安卓)创建复合控件
  6. Android 双指同时点击事件模拟
  7. Android的子线程能更新UI吗?
  8. android文本布局引擎
  9. WindowXP 下Android(安卓)开发环境搭建
  10. Android(安卓)8/9高通平台客制化虚拟导航