Android listView显示SQlite
2015-12-07 20:27
381 查看
效果如下关键代码:1、创建数据库
package com.android.hotelcontrol.callService; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by renjianhong on 2015/12/7. */ public class ClientTaskDB extends SQLiteOpenHelper { private final static String DATABASE_NAME = "Client.db"; private final static int DATABASE_VERSION = 1; private final static String TABLE_NAME = "task_table"; //表名 public final static String TASK_CONTENT = "task_content";//该字段存储任务内容 public final static String TASK_TIME = "task_time";//存储任务完成时间 public ClientTaskDB(Context context) { // TODO Auto-generated constructor stub super(context, DATABASE_NAME, null, DATABASE_VERSION); } //创建table @Override public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE " + TABLE_NAME + " (" + TASK_CONTENT + " text, "+ TASK_TIME +" text);"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = "DROP TABLE IF EXISTS " + TABLE_NAME; db.execSQL(sql); onCreate(db); } public Cursor select() { SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db .query(TABLE_NAME, null, null, null, null, null, null); return cursor; } //增加操作 public long insert(String taskcontent,String time) { SQLiteDatabase db = this.getWritableDatabase(); /* ContentValues */ ContentValues cv = new ContentValues(); cv.put(TASK_CONTENT, taskcontent); cv.put(TASK_TIME, time); long row = db.insert(TABLE_NAME, null, cv); return row; } //删除操作 public void delete(String taskcontent) { SQLiteDatabase db = this.getWritableDatabase(); String where = TASK_CONTENT + " = ?"; String whereValue = taskcontent; db.delete(TABLE_NAME, where, new String[]{whereValue}); } //修改操作 public void update( String taskcontent,String time) { SQLiteDatabase db = this.getWritableDatabase(); String where = TASK_CONTENT + " = ?"; String whereValue = taskcontent ; ContentValues cv = new ContentValues(); cv.put(TASK_CONTENT, taskcontent); cv.put(TASK_TIME, time); db.update(TABLE_NAME, cv, where, new String[]{whereValue}); } }2、创建Activity
package com.android.hotelcontrol.callService; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.text.format.Time; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Li 119ce stView; import android.widget.RelativeLayout; import android.widget.SimpleAdapter; import android.widget.Spinner; import android.widget.Toast; import com.android.mymhotel.R; import com.android.mymhotel.common.contanst.HeaderConst; import com.android.pc.ioc.app.Ioc; import com.android.pc.ioc.util.MapVo; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; public class CallServiceActivity extends Activity { private static ListView lv; private ClientTaskDB mclientDB; @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_server_view); lv = (ListView) findViewById(R.id.service_listview);//已完成列表控件 //数据库测试数据 mclientDB = new ClientTaskDB(this); mclientDB.insert("可乐 X 2","2015/12/7 11:55"); mclientDB.insert("矿泉水 X 2","2015/12/7 11:55"); mclientDB.insert("奥尔良鸡腿堡 X 8","2015/12/7 11:55"); mclientDB.insert("加州牛肉面 X 2","2015/12/7 11:55"); mclientDB.insert("加州小白菜 X 2","2015/12/7 11:55"); showFinishTask(); } // 显示已完成任务列表 private void showFinishTask(){ SQLiteDatabase db = mclientDB.getWritableDatabase(); Cursor cursor = db.query("task_table", null, null, null, null, null, null); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); //������SimpleAdapter��ݰ� //����:���캯��SimpleAdapterδ���� ���this��ΪMainActivity.this SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.call_service_list_item, new String[]{"content", "time"}, new int[]{R.id.service_contnt, R.id.finish_time}); //��ȡ��� �α��ƶ�����һ�� while(cursor.moveToNext()) { Map<String, Object> map = new HashMap<String, Object>(); map.put( "content", cursor.getString(cursor.getColumnIndex("task_content")) ); Log.d("CallServiceActivity", "内容" + cursor.getString(cursor.getColumnIndex("task_content"))); map.put("time", cursor.getString(cursor.getColumnIndex("task_time"))); Log.d("CallServiceActivity", "时间" + cursor.getString(cursor.getColumnIndex("task_time"))); list.add(map); } lv.setAdapter(adapter); }
}
3、布局layout关键代码
<RelativeLayoutandroid:id="@+id/call_service_data_list"android:layout_alignParentBottom="true"android:layout_width="fill_parent"android:layout_height="200sp"><TextViewandroid:id="@+id/call_server_item_text"android:layout_width="fill_parent"android:paddingTop="3sp"android:paddingLeft="3sp"android:layout_height="wrap_content"android:textSize="15sp"android:text="已完成服务"/><ImageViewandroid:id="@+id/divider_line"android:layout_below="@+id/call_server_item_text"android:layout_width="fill_parent"android:padding="3sp"android:layout_height="0.1sp"android:background="#99CC33"/><ListViewandroid:layout_below="@+id/divider_line"android:id="@+id/service_listview"android:layout_width="fill_parent"android:divider="#99CC33"android:dividerHeight="0.1sp"android:layout_height="180sp"/></RelativeLayout>
4,Adapter中用到的call_service_list_item
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"><RelativeLayoutandroid:id="@+id/call_server_item_content"android:layout_alignParentBottom="true"android:paddingTop="3dp"android:layout_width="fill_parent"android:layout_height="40dp"><TextViewandroid:id="@+id/service_contnt"android:layout_centerVertical="true"android:paddingLeft="3dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="16dp"/><TextViewandroid:id="@+id/finish_time"android:layout_centerVertical="true"android:paddingRight="3dp"android:layout_alignParentRight="true"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="18dp"/></RelativeLayout></RelativeLayout>
相关文章推荐
- Android 5.0——Material Design详解(动画篇)
- 【android】如何实现猿题库题目的排版
- Android中关于:at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099) 的问题
- 我的Android进阶之旅------>Android【设置】-【语言和输入法】-【语言】列表中找到相应语言所对应的列表项
- Android 反编译
- android GridView默认选中分析
- android学习笔记-自定义View的属性
- Android Studio第三期 - 加载bar
- android控件—ListView(1)
- Android Graphics.drawable之—LevelListDrawable学习
- Android从源码分析二:AsyncTask异步任务
- android_获取缓存大小和清除缓存功能
- android 判断点击的位置是不是在指定的view上
- federa 23 安装 androidSDK6.0
- Android 捕获OOM方法
- Android抓取不同层级Log的方式
- 关于斐波那契数列的优化
- 《疯狂Android讲义》读书笔记2.Android应用的界面编程
- Android 6.0 运行时权限处理
- 如何用MAT分析Android应用内存泄露