Android sqlite 数据库查询,插入,删除,更新demo<第2章>

来源:互联网 发布:南京行知中学升学率 编辑:程序博客网 时间:2024/05/17 02:54

接下来,测试DataBasehelper  ,创建activity,并在activity中创建option menu,实现插入,删除,更新,操作完成后查询数据库,显示在activity中的ListView。

如图:




实现这个demo,需要创建三个控件,

一个是activity的布局文件fragment_list_view.xml ;

ListView布局中需要显示的列表控件 user_info.xml,主要是要显示的列名内容的控件;

最后一个是menu控件  option_menu.xml


//  fragment_list_view.xml 


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10px"
    android:orientation="vertical"
    >
    <ListView 
        android:id="@+id/user_list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    </ListView>
</LinearLayout>


//  user_info.xml


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="10px"
    >
    
    <TextView 
        android:id="@+id/user_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />
    <TextView 
        android:id="@+id/user_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#400000"
android:layout_weight="1"
        />
    <TextView 
        android:id="@+id/user_number"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#400000"
        android:layout_weight="1"
        />
</LinearLayout>


//  option_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.listviewdatabase.ListViewActivity" >
   
    <item 
        android:id="@+id/userdata_insert"
        android:title="Insert"
        android:icon="@android:drawable/ic_menu_add"
        />
    
    <item 
        android:id="@+id/userdata_delete"
        android:title="Delete"
        android:icon="@android:drawable/ic_menu_delete"
        />
    <item 
        android:id="@+id/userdata_updata"
        android:title="Updata"
        android:icon="@android:drawable/ic_menu_upload"
        />
</menu>


上 主界面activity代码


package com.example.listviewdatabase;


import android.support.v7.app.ActionBarActivity;
import android.support.v4.widget.SimpleCursorAdapter;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.CursorAdapter;
import android.widget.ListView;




public class ListViewActivity extends ActionBarActivity {

private static final String TAG = "ListViewActivity";


private ListView listview = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_list_view);

}

// 使用onResume()方法,是因为在插入,删除,更新功能是activity的一个Dialog,操作完成后回返回此界面调用onResume(),在此执行的功能是显示数据中的内容


@Override
protected void onResume() {
// TODO Auto-generated method stub

listview = (ListView) findViewById(R.id.user_list);

DataBaseHelper dbh = new DataBaseHelper(ListViewActivity.this, null);
SQLiteDatabase db = dbh.getReadableDatabase();
Cursor cursor = dbh.getCursor(db);

SimpleCursorAdapter myAdapter = new SimpleCursorAdapter(ListViewActivity.this, 
R.layout.user_info, 
cursor, 
new String[]{"_id","name","number"}, 
new int[]{R.id.user_id,R.id.user_name,R.id.user_number},
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
listview.setAdapter(myAdapter);
dbh.close();
db.close();
super.onResume();
}
 

@Override   
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub

// menu.add(0, 1, 1, "Add");
// menu.add(0, 2, 2, "Delete");

MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.option_menu, menu);

return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub

switch (item.getItemId()) {
case R.id.userdata_insert:
Intent intent_insert_userdata = new Intent();
intent_insert_userdata.setClass(ListViewActivity.this,InsertUserEditDialog.class);
ListViewActivity.this.startActivity(intent_insert_userdata);
break;
case R.id.userdata_delete:
Intent intent_delete_userdata = new Intent();
intent_delete_userdata.setClass(ListViewActivity.this, DeleteUserDataDialog.class);
ListViewActivity.this.startActivity(intent_delete_userdata);
break;
case R.id.userdata_updata:

Intent intent_updata_userdata =  new Intent();
intent_updata_userdata.setClass(ListViewActivity.this, UpdataUserDataDialog.class);
ListViewActivity.this.startActivity(intent_updata_userdata);
break;
default:
break;
}
return true;
}

}


此文章是本人学习笔记,能力有限,相互学习,欢迎点评,谢谢...

0 0
原创粉丝点击