不错的帖子:

分享一个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. Android客户端解析web服务器XML数据小问题
  2. Android应用数据备份
  3. 【Android】数据存储之SQLite
  4. 如何查看无法导出的android数据库文件?
  5. Android本地数据存储之Sharedpreference
  6. Android实现数据存储技术
  7. Android处理后台返回数据——Json转实体类

随机推荐

  1. [置顶] [Android(安卓)Studio 权威教程]配
  2. Android(安卓)添加白名单实现保活
  3. 从 0 开始,搭建一个完整的 Android(安卓)
  4. Android(安卓)native crash 日志分析
  5. Android(安卓)CheckBox 修改选择框
  6. 浅析Android(安卓)4.0的通知系统(附Androi
  7. Android(安卓)强弱指针分析
  8. 简述Unity中调用Android方法
  9. 第一行代码笔记3
  10. Android应用设计提示:关于资源对象