`
阅读更多

先看效果图:

 

 

 

 

PersonDao1.java

 

package mm.shandong.com.testsqlsqllite.dao;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;


import java.util.ArrayList;
import java.util.List;

import mm.shandong.com.testsqlsqllite.entity.Person;
import mm.shandong.com.testsqlsqllite.util.StudySQLiteOpenHelper;

/**
 * Created by buyadong on 2016/8/7.
 */
public class PersonDao1 {
    Context context;
    StudySQLiteOpenHelper studySQLiteOpenHelper;

    public PersonDao1(Context context) {
        this.context = context;
        studySQLiteOpenHelper = new StudySQLiteOpenHelper(context, "androidStudy.db", 7);
    }

    public void addPerson(Person person) {
        SQLiteDatabase db = studySQLiteOpenHelper.getWritableDatabase();
        String sql = "insert into person(_id,name,sex,age,code) values(null,?,?,?,?)";
        db.execSQL(sql,new Object[]{person.getName(),
                person.getSex(), person.getAge(), person.getCode()});
    }

    public void deletePerson(Person person) {
        SQLiteDatabase db = studySQLiteOpenHelper.getWritableDatabase();
        String sql = "delete from person where _id=?";
        db.execSQL(sql, new Object[]{person.get_id()});
    }

    public void updatePerson(Person person) {
        SQLiteDatabase db = studySQLiteOpenHelper.getWritableDatabase();
        String sql = "update person set name=?,sex=?,age=?,code=? where _id=?";
        db.execSQL(sql, new Object[]{person.getName(), person.getSex(),
                person.getAge(), person.getCode(), person.get_id()});
    }

    public List<Person> getAllPerson() {
        List<Person> persons = new ArrayList<Person>();
        SQLiteDatabase db = studySQLiteOpenHelper.getWritableDatabase();
        String sql = "select * from person";
        Cursor cursor = db.rawQuery(sql, null);
        while (cursor.moveToNext()) {
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String sex = cursor.getString(cursor.getColumnIndex("sex"));
            int age = cursor.getInt(cursor.getColumnIndex("age"));
            String code = cursor.getString(cursor.getColumnIndex("code"));
            int _id = cursor.getInt(cursor.getColumnIndex("_id"));
            Person person = new Person(name, sex, age, code);
            person.set_id(_id);
            persons.add(person);
        }
        return persons;
    }
}

  

 Person实体类:

package mm.shandong.com.testsqlsqllite.entity;

import java.io.Serializable;

/**
 * Created by 安卓无忧 on 2016/7/27.
 */
public class Person implements Serializable{
      private  String name;
      private  int age;
      private String code;
      private String sex;

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    private String first_letter;
      private int _id;

    public void set_id(int _id) {
        this._id = _id;
    }

    public int get_id() {

        return _id;
    }

    public void setFirst_letter(String first_letter) {
        this.first_letter = first_letter;
    }

    public String getFirst_letter() {

        return first_letter;
    }

    public Person(){

    }
    public Person(String name, int age, String code){
        this.name=name;
        this.age=age;
        this.code=code;
    }
    public Person(String name,String sex, int age, String code){
        this.name=name;
        this.age=age;
        this.code=code;
        this.sex=sex;
    }
    @Override
    public String toString() {
        return  name +" "+age+" "+code;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {

        return age;
    }

    public String getCode() {
        return code;
    }

    public String getName() {
        return name;
    }
}

 StudySQLiteOpenHelper

package mm.shandong.com.testsqlsqllite.util;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by 安卓无忧 on 2016/7/10.
 */
public class StudySQLiteOpenHelper extends SQLiteOpenHelper {
    String dataBase_name;
    Context context;
    String create_TABLE_sql="create table person(_id INTEGER PRIMARY KEY AUTOINCREMENT," +
            "name varchar(30),age integer,sex varchar(30),code varchar(30))" ;
    String delete_Sql="delete from person";

    public StudySQLiteOpenHelper(Context context, String name, int verson){
        super(context,name,null,verson);
        this.context=context;
    }
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
          sqLiteDatabase.execSQL(create_TABLE_sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
       

    }
}

 

 activity

 

package mm.shandong.com.testsqlsqllite;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;



import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import mm.shandong.com.testsqlsqllite.dao.PersonDao1;
import mm.shandong.com.testsqlsqllite.entity.Person;

public class TestSQLSqlLiteActivity extends AppCompatActivity {
    ListView listView;
    List<Person> persons;
    PersonDao1 personDao;
    BaseAdapter personAdapter;
    Map<String,Boolean> radioStates;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test_sqlsql_lite);
        radioStates=new HashMap<String,Boolean>();
        personDao=new PersonDao1(this);
        listView= (ListView) findViewById(R.id.listView);
        persons=personDao.getAllPerson();
        initListView();
    }
    public void initListView(){
        personAdapter=new BaseAdapter() {
            @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(final  int position, View view, ViewGroup viewGroup) {
                view=getLayoutInflater().inflate(R.layout.item_sqlite_listview,null);
                TextView textViewPerson_name= (TextView) view.findViewById(R.id.textViewPerson_name);
                TextView textViewPerson_sex= (TextView) view.findViewById(R.id.textViewPerson_sex);
                TextView textViewPerson_code=(TextView)view.findViewById(R.id.textViewPerson_code);
                TextView textViewPerson_age= (TextView) view.findViewById(R.id.textViewPerson_age);
                final Person person= (Person) getItem(position);
                textViewPerson_name.setText(person.getName());
                textViewPerson_age.setText(person.getAge()+"");
                textViewPerson_sex.setText(person.getSex());
                textViewPerson_code.setText(person.getCode());
                RadioButton radioButton= (RadioButton) view.findViewById(R.id.radioButton);
                radioButton.setOnClickListener(new View.OnClickListener() {
                       @Override
                       public void onClick(View view) {
                           if(view instanceof RadioButton) {
                               RadioButton radioButton = (RadioButton) view;
                               if (radioButton.isChecked()) {
                                   radioStates.put(String.valueOf(position), true);
                                   for (String key : radioStates.keySet()) {
                                       if (!key.equals(String.valueOf(position))) {
                                           radioStates.put(key, false);
                                       }
                                   }
                                   notifyDataSetChanged();
                               }
                           }

                       }
                   }
                );
                Boolean tempState=radioStates.get(String.valueOf(position));
                if(tempState!=null&&tempState){
                    radioButton.setChecked(true);
                    view.setBackgroundColor(Color.BLUE);
                }else{
                    radioButton.setChecked(false);
                    view.setBackgroundColor(Color.WHITE);
                }
                return view;
            }
        };
        listView.setAdapter(personAdapter);
    }
    public void addPerson(View view){
        AlertDialog.Builder builder= new AlertDialog.Builder(this);
        builder.setTitle("新增用户").create();
        View childView=getLayoutInflater().inflate(R.layout.layout_sqlite_alert,null);
        builder.setView(childView);
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Field field = null;
                try {
                    field = dialogInterface.getClass().getSuperclass().getDeclaredField("mShowing");
                    field.setAccessible(true);
                    field.set(dialogInterface, true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

                try {
                    Field field = dialogInterface.getClass().getSuperclass().getDeclaredField("mShowing");
                    field.setAccessible(true);
                    field.set(dialogInterface,false);
                    AlertDialog ad;
                    if(dialogInterface instanceof AlertDialog){
                        ad= (AlertDialog) dialogInterface;
                        EditText editViewPerson_name=
                                (EditText) ad.findViewById(R.id.editViewPerson_name);
                        EditText editViewPerson_code=
                                (EditText) ad.findViewById(R.id.editViewPerson_code);
                        EditText editViewPerson_age=
                                (EditText) ad.findViewById(R.id.editViewPerson_age);
                        RadioGroup radioGroupSex=
                                (RadioGroup) ad.findViewById(R.id.radioGroupSex);
                        if(TextUtils.isEmpty(editViewPerson_name.getText().toString())){
                            Toast.makeText(TestSQLSqlLiteActivity.this,
                                    "姓名不能为空",Toast.LENGTH_SHORT).show();
                            return;
                        }
                        if(TextUtils.isEmpty(editViewPerson_code.getText().toString())){
                            Toast.makeText(TestSQLSqlLiteActivity.this,
                                    "编号不能为空",Toast.LENGTH_SHORT).show();
                            return;
                        }
                        if(TextUtils.isEmpty(editViewPerson_age.getText().toString())){
                            Toast.makeText(TestSQLSqlLiteActivity.this,
                                    "年龄不能为空",Toast.LENGTH_SHORT).show();
                            return;
                        }
                        Person person=new Person();
                        person.setAge(Integer.parseInt(editViewPerson_age.getText().toString()));
                        person.setName(editViewPerson_name.getText().toString());
                        person.setCode(editViewPerson_code.getText().toString());
                        RadioButton radioButton= (RadioButton) radioGroupSex.
                                findViewById(radioGroupSex.getCheckedRadioButtonId());
                        person.setSex(radioButton.getText().toString());
                        personDao.addPerson(person);
                        persons=personDao.getAllPerson();
                        radioStates=new HashMap<String,Boolean>();
                        personAdapter.notifyDataSetChanged();
                        field.set(dialogInterface,true);
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
        builder.show();

    }
    public void deletePerson(View view){
        int position=-1;
        for(int i=0;i<listView.getChildCount();i++){
            View childView=listView.getChildAt(i);
            RadioButton radioButton= (RadioButton) childView.findViewById(R.id.radioButton);
            if(radioButton.isChecked()){
                position=i;
                break;
            }
        }
        if(position!=-1){
            Person person= persons.get(position);
            personDao.deletePerson(person);
            persons=personDao.getAllPerson();
            radioStates=new HashMap<String,Boolean>();
            personAdapter.notifyDataSetChanged();

        }else{
            Toast.makeText(this,"请选择要删除的行",Toast.LENGTH_SHORT);
        }
    }
    public void updatePerson(View view){
        int position=-1;
        for(int i=0;i<listView.getChildCount();i++){
            View childView=listView.getChildAt(i);
            RadioButton radioButton= (RadioButton) childView.findViewById(R.id.radioButton);
            if(radioButton.isChecked()){
                position=i;
                break;
            }
        }
        if(position!=-1){
            final Person person= persons.get(position);
            AlertDialog.Builder builder= new AlertDialog.Builder(this);
            builder.setTitle("修改用户").create();
            View childView=getLayoutInflater().inflate(R.layout.layout_sqlite_alert,null);
            EditText editViewPerson_name=
                    (EditText) childView.findViewById(R.id.editViewPerson_name);
            EditText editViewPerson_code=
                    (EditText) childView.findViewById(R.id.editViewPerson_code);
            EditText editViewPerson_age=
                    (EditText) childView.findViewById(R.id.editViewPerson_age);
            RadioGroup radioGroupSex=
                    (RadioGroup) childView.findViewById(R.id.radioGroupSex);
            editViewPerson_name.setText(person.getName());
            editViewPerson_age.setText(String.valueOf(person.getAge()));
            editViewPerson_code.setText(person.getCode());
            if(person.getSex().equals("男")){
                ((RadioButton)radioGroupSex.getChildAt(0)).setChecked(true);
            }else{
                ((RadioButton)radioGroupSex.getChildAt(1)).setChecked(true);
            }
            builder.setView(childView);
            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {

                }
            });
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {

                    try {
                        Field field = dialogInterface.getClass().getSuperclass().getDeclaredField("mShowing");
                        field.setAccessible(true);
                        field.set(dialogInterface,false);
                        AlertDialog ad;
                        if(dialogInterface instanceof AlertDialog){
                            ad= (AlertDialog) dialogInterface;
                            EditText editViewPerson_name=
                                    (EditText) ad.findViewById(R.id.editViewPerson_name);
                            EditText editViewPerson_age=
                                    (EditText) ad.findViewById(R.id.editViewPerson_age);
                            EditText editViewPerson_code=
                                    (EditText) ad.findViewById(R.id.editViewPerson_code);
                            RadioGroup radioGroupSex= (RadioGroup) ad.findViewById(R.id.radioGroupSex);

                            if(TextUtils.isEmpty(editViewPerson_name.getText().toString())){
                                Toast.makeText(TestSQLSqlLiteActivity.this,
                                        "姓名不能为空",Toast.LENGTH_SHORT).show();
                                return;
                            }
                            if(TextUtils.isEmpty(editViewPerson_age.getText().toString())){
                                Toast.makeText(TestSQLSqlLiteActivity.this,
                                        "年龄不能为空",Toast.LENGTH_SHORT).show();
                                return;
                            }

                            person.setAge(Integer.parseInt(editViewPerson_age.getText().toString()));
                            person.setName(editViewPerson_name.getText().toString());
                            RadioButton radioButton= (RadioButton) radioGroupSex.
                                    findViewById(radioGroupSex.getCheckedRadioButtonId());
                            person.setSex(radioButton.getText().toString());
                            person.setCode(editViewPerson_code.getText().toString());
                            personDao.updatePerson(person);
                            persons=personDao.getAllPerson();
                            radioStates=new HashMap<String,Boolean>();
                            personAdapter.notifyDataSetChanged();
                            field.set(dialogInterface,true);
                        }

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
            builder.show();

        }else{
            Toast.makeText(this,"请选择要删除的行",Toast.LENGTH_SHORT);
        }
    }

}

 布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="addPerson"
            android:text="新增" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="deletePerson"
            android:text="删除" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="updatePerson"
            android:text="修改" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_horizontal"
            android:text="姓名" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_horizontal"
            android:text="编号" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_horizontal"
            android:text="年龄" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_horizontal"
            android:text="性别" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_horizontal"
            android:text="请选择" />
    </LinearLayout>

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

 

如果想要源码,请留下邮箱。

Demo下载
最后,以上例子都来源与安卓无忧,请去应用宝或者豌豆荚下载:http://android.myapp.com/myapp/detail.htm?apkName=com.shandong.mm.androidstudy,源码例子文档一网打尽。 

 

 

  • 大小: 6.4 MB
0
0
分享到:
评论

相关推荐

    sqlite 增删改查简单示例

    SQLite 是一个轻量级的、开源的嵌入式...以上就是 SQLite 增删改查的基本操作。在实际应用中,你可能还需要学习更多高级特性,如事务处理、索引、视图等。通过实践,你可以更好地理解和掌握 SQLite 数据库的使用。

    sqlite增删改查

    SQLite支持SQL标准,包括了增、删、改、查(CRUD)等基本操作。下面我们将详细探讨这四个方面的内容,基于提供的四个示例文件`delete.c`、`query.c`、`insert.c`和`opendbsqlite.c`。 1. **创建数据库和表** 在...

    Android数据库的SQLite增删改查

    本教程将通过一个名为"SqliteTestDemo"的示例项目,深入讲解如何在Android中进行SQLite数据库的增、删、改、查操作。 首先,我们需要创建一个SQLite数据库。在Android中,我们通常会创建一个`SQLiteOpenHelper`的...

    android开发 sqlite增删改查。(完整代码实例)

    android开发 sqlite增、删、改、查。(完整代码实例),以及对数据库文件的复制。

    C# SQLite3增删改查Demo

    本篇将重点介绍如何使用C#语言进行SQLite3的增删改查操作,这对于初学者来说是一次极好的实践机会。 首先,我们要理解C#与SQLite3的集成。C#通过SQLite的.NET数据提供程序(System.Data.SQLite)来与SQLite交互。...

    android的sqlite增删改查示例

    在这个"android的sqlite增删改查示例"中,我们将深入探讨如何在Android应用中集成SQLite进行基本的数据操作。 首先,Android SDK提供了一个SQLiteOpenHelper类,它是所有SQLite操作的基础。这个类负责创建、升级和...

    IOS sqlite 完成增删改查

    为了实现增删改查的功能,我们需要编写以下关键方法: 1. **添加**:创建一个新的对象,设置其属性,然后调用SQLite管理类的`insertUser:`方法,将对象转换为SQL语句并执行。 2. **修改**:获取选中对象,更新其...

    Sqlite增删改查案例

    在这个“SQLite增删改查案例”中,我们将深入探讨如何在Android环境下利用SQLite进行数据操作。 1. **SQLite数据库创建**: 在Android中,我们通常通过继承`SQLiteOpenHelper`类来创建和管理SQLite数据库。这个类...

    Android SQLite 增删改查操作实例

    本实例将详细讲解如何在Android中进行SQLite数据库的增删改查(CRUD)操作。 **创建SQLite数据库** 首先,我们需要创建一个SQLite数据库。在Android中,我们通常通过继承`SQLiteOpenHelper`类来实现。这个类提供了...

    SQLite 增删改查的工具类

    以上就是创建SQLite增删改查工具类的基本步骤。在实际应用中,你可能需要根据具体需求对这些方法进行扩展,比如添加查询单个记录、按条件查询等。此外,为了保持代码的整洁和可维护性,可以考虑将SQL语句封装到常量...

    sqlite增删改查.txt

    sqlite增删改查

    Android 操作数据库SQLite 增删改查demo

    这个"Android操作数据库SQLite增删改查demo"应该包含了创建数据库、定义表、插入数据、查询数据、更新数据和删除数据的基本操作,以及一些最佳实践。对于初学者来说,这是一个很好的起点,有助于理解和掌握Android中...

    sqlite增删改查demo

    在这个"sqlite增删改查demo"中,我们将探讨如何在SQLite中进行这些操作。 首先,让我们了解如何创建一个SQLite数据库。在Python中,我们可以使用sqlite3库来与SQLite交互。创建数据库只需连接到一个不存在的数据库...

    android SQLite 增删改查小例子

    在这个“android SQLite 增删改查小例子”中,我们看到一个用于图书管理的应用实例,该应用利用SQLite进行数据操作。下面将详细解释如何在Android中使用SQLite进行基本的增、删、改、查操作。 1. **...

    android SQLite 增删改查

    在这个"android SQLite 增删改查"的示例中,我们将探讨如何在Android应用中使用SQLite进行基本的数据操作。 首先,我们需要创建一个SQLite数据库。在Android中,这通常通过扩展SQLiteOpenHelper类来实现。...

    SQLite增删改查

    本教程将深入探讨如何在Android中执行SQLite的增、删、改、查(CRUD)操作。 ### 一、SQLite简介 SQLite是一个自包含、无服务器、零配置、事务型的SQL数据库引擎。它的设计目标是提供一个嵌入式、轻量级的数据存储...

    c# 基于EF6+Sqlite数据库的增删改查Demo

    C# EF+SQLITE数据库增删改查,适用与多种项目开发,初学者按照步骤进行EF动态库引用,可直接进行对数据库操作:以下是对于增删改查的部分展示 //var list = AppNewObject.Instance.MyBaseService.FindAll(); //查询 ...

    labview控制sqlite的增删改查

    在LabVIEW中控制SQLite,可以通过编写VIs(Virtual Instruments)来实现对SQLite数据库的增删改查操作。 **1. 创建SQLite数据库连接** 在LabVIEW中,首先需要创建一个SQLite数据库连接。这通常通过调用SQLite的动态...

    androidSQLite增删改查及事务处理

    在这个"androidSQLite增删改查及事务处理"的demo中,我们将探讨如何进行基本的数据库操作以及事务处理。 **1. 创建SQLite数据库** 首先,我们需要创建一个SQLiteOpenHelper的子类,这个类帮助我们管理数据库的版本...

Global site tag (gtag.js) - Google Analytics