在Android的SQLite数据库的做法 [英] sqlite database practice in android

查看:225
本文介绍了在Android的SQLite数据库的做法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经提出申请,在Android中数据库的做法简单,因为我不知道的想法 SQLite数据库我已经通过它那么多的环节了,但大部分他们是复杂的,我创建了4活动1日(mainActivity)包含3个按钮添加,编辑和查看,在第二届活动(AddActivity)我已3 EditTexts 其输入的数值应存放在database.So可以请你告诉我做同样的简单步骤?

MainActivity.java

 包com.example.db;进口android.os.Bundle;
进口android.app.Activity;
进口android.content.Intent;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;公共类MainActivity延伸活动{    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        按钮添加=(按钮)findViewById(R.id.button1);
        编辑按钮=(按钮)findViewById(R.id.button2);
        按钮来查看=(按钮)findViewById(R.id.button3);        add.setOnClickListener(新OnClickListener(){        @覆盖
        公共无效的onClick(查看为arg0){
            // TODO自动生成方法存根]
            意图I =新意图(MainActivity.this,AddActivity.class);
            startActivity(ⅰ);        }
    });
    edit.setOnClickListener(新OnClickListener(){        @覆盖
        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            意图I =新意图(MainActivity.this,EditActivity.class);
            startActivity(ⅰ);        }
    });    view.setOnClickListener(新OnClickListener(){        @覆盖
        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            意图I =新意图(MainActivity.this,ViewActivity.class);
            startActivity(ⅰ);
        }
    });
    }    }

AddActivity.java

 包com.example.db;进口android.os.Bundle;
进口android.app.Activity;
进口android.content.Intent;
进口android.database.Cursor;
进口android.database.sqlite.SQLiteDatabase;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.widget.EditText;公共类AddActivity延伸活动{
EditText上名字,ADDRES,响度单位;
按钮广告,CN;
@覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_add);        名称=(EditText上)findViewById(R.id.name);
        ADDRES =(EditText上)findViewById(R.id.address);
        PHON =(EditText上)findViewById(R.id.phone);        AD =(按钮)findViewById(R.id.add);
        CN =(按钮)findViewById(R.id.cancel);
        最后SQLiteDatabase DB = openOrCreateDatabase(MYDB,MODE_PRIVATE,NULL);
        db.execSQL(CREATE TABLE如果不存在简单的(名称VARCHAR,地址为varchar,电话VARCHAR);
        ad.setOnClickListener(新OnClickListener(){
            字符串N = name.getText()的toString();
            字符串= addres.getText()的toString()。
            。串P = phon.getText()的toString();
            @覆盖
            公共无效的onClick(视图v){                db.execSQL(插入简单的值('N','A','P'));
                光标C = db.rawQuery(从简单的SELECT *,NULL);
                c.moveToFirst();            }
        });        cn.setOnClickListener(新OnClickListener(){            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
                意图I =新意图(AddActivity.this,MainActivity.class);
                startActivity(ⅰ);
            }
        });
    }
}

的main.xml

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    工具:上下文=MainActivity。>    <按钮
        机器人:ID =@ + ID /按钮1
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentLeft =真
        机器人:layout_alignParentTop =真
        机器人:layout_marginLeft =100dp
        机器人:layout_marginTop =92dp
        机器人:文字=添加/>    <按钮
        机器人:ID =@ + ID /按钮2
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignRight =@ + ID /按钮1
        机器人:layout_below =@ + ID /按钮1
        机器人:layout_marginTop =28dp
        机器人:文字=编辑/>    <按钮
        机器人:ID =@ + ID /按钮3
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignRight =@ + ID /按钮2
        机器人:layout_below =@ + ID /按钮2
        机器人:layout_marginTop =37dp
        机器人:文字=查看/>< / RelativeLayout的>

Add.xml

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    工具:上下文=。AddActivity>    <的TextView
        机器人:ID =@ + ID / textView3
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentLeft =真
        机器人:layout_below =@ + ID / textView2
        机器人:layout_marginTop =60dp
        机器人:文字=手机
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium/>    <的TextView
        机器人:ID =@ + ID / textView1
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_above =@ + ID / textView3
        机器人:layout_alignParentLeft =真
        机器人:layout_alignParentTop =真
        机器人:layout_marginLeft =17dp
        机器人:layout_marginTop =14dp
        机器人:文字=姓名
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium/>    <的EditText
        机器人:ID =@ + ID /名称
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBaseline =@ + ID / textView1
        机器人:layout_alignBottom =@ + ID / textView1
        机器人:layout_alignParentRight =真
        机器人:EMS =10>        < requestFocus的/>
    < /&的EditText GT;    <的TextView
        机器人:ID =@ + ID / textView2
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentTop =真
        机器人:layout_marginTop =80dp
        机器人:layout_toLeftOf =@ + ID / editText2
        机器人:文字=地址
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium/>    <的EditText
        机器人:ID =@ + ID /地址
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentRight =真
        机器人:layout_alignTop =@ + ID / textView2
        机器人:EMS =10
        安卓的inputType =textPostalAddress/>    <的EditText
        机器人:ID =@ + ID /手机
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID / textView3
        机器人:layout_alignParentRight =真
        机器人:EMS =10
        安卓的inputType =手机/>    <按钮
        机器人:ID =@ + ID /加
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_below =@ + ID /手机
        机器人:layout_marginTop =62dp
        机器人:layout_toRightOf =@ + ID / textView1
        机器人:文字=添加/>    <按钮
        机器人:ID =@ + ID /取消
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID /加
        机器人:layout_marginLeft =36dp
        机器人:layout_toRightOf =@ + ID /加
        机器人:文字=取消/>< / RelativeLayout的>


解决方案

确定我想你想编辑文本的价值添加到您的分贝

 包com.example.databasesample;
 进口的java.util.ArrayList;
 进口android.app.Activity;
 进口android.content.ContentValues​​;
 进口android.database.Cursor;
 进口android.database.sqlite.SQLiteDatabase;
 进口android.os.Bundle;
 进口android.view.Menu;
 进口android.view.View;
 进口android.view.View.OnClickListener;
 进口android.widget.AdapterView;
 进口android.widget.AdapterView.OnItemClickListener;
 进口android.widget.Button;
 进口android.widget.EditText;
 进口android.widget.ListView;公共类MainActivity扩展活动实现OnClickListener {
静态的EditText edtAdd;
按钮btnAdd,btnShow;
ListView的LISTNAME;
静态DataBaseSqlLiteHelper mBaseSqlLiteHelper;
DbModel之后mDbModel;
ArrayList的< D​​bModel之后> mArrayList;
ListAdapter mAdapter;@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_main);
    初始化();    mArrayList =新的ArrayList< D​​bModel之后>();
    mBaseSqlLiteHelper =新DataBaseSqlLiteHelper(MainActivity.this);
    mBaseSqlLiteHelper.getReadableDatabase();
    mBaseSqlLiteHelper.getWritableDatabase();}公共无效的initialize(){
    edtAdd =(EditText上)findViewById(R.id.edtEnterName);
    btnAdd =(按钮)findViewById(R.id.btnAdd);
    btnAdd.setOnClickListener(本);
    btnShow =(按钮)findViewById(R.id.btnShow);
    btnShow.setOnClickListener(本);
    LISTNAME =(ListView控件)findViewById(R.id.listName);
    listName.setOnItemClickListener(新OnItemClickListener(){        @覆盖
        公共无效onItemClick(适配器视图<>为arg0,ARG1观,诠释ARG2,
                长ARG3){
            // TODO自动生成方法存根
            deleteItem(mArrayList.get(ARG2).getId());        }
    });
}@覆盖
公共布尔onCreateOptionsMenu(菜单菜单){
    //充气菜单;如果是present这增加了项目操作栏。
    。getMenuInflater()膨胀(R.menu.main,菜单);
    返回true;
}@覆盖
公共无效的onClick(视图v){
    // TODO自动生成方法存根
    开关(v.getId()){
    案例R.id.btnAdd:
        addName(edtAdd.getText()的toString());
        打破;
    案例R.id.btnShow:
        showNames();
        打破;
    默认:
        打破;
    }}
    //添加值
公共无效addName(字符串名称){
    SQLiteDatabase mOpenHelper = mBaseSqlLiteHelper.getWritableDatabase();
    ContentValues​​ mContentValues​​ =新ContentValues​​();
    mContentValues​​.put(名,名);
    mOpenHelper.insert(名称,空,mContentValues​​);
    mOpenHelper.close();
}
    //显示列表中的值
公共无效showNames(){
    字符串selectQuery =SELECT * FROM名称;
    SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase();
    光标mCursor = mDatabase.rawQuery(selectQuery,NULL);
    如果(mCursor.moveToFirst()){
        做{
            mDbModel =新DbModel之后,();
            mDbModel.setId(mCursor.getString(0));
            mDbModel.setName(mCursor.getString(1));
            mArrayList.add(mDbModel);        }而(mCursor.moveToNext());
    }
    mAdapter =新ListAdapter(MainActivity.this,mArrayList);
    listName.setAdapter(mAdapter);
}
     delete一个值
公共无效deleteItem(字符串ID){
    SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase();    字符串删除= + ID上的名称凡_id =删除;    mDatabase.execSQL(删除);
    mDatabase.close();
    mAdapter.notifyDataSetChanged();
    mArrayList.remove(ID);}
    //更新项目
公共静态无效的updateItem(字符串ID){
    SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase();    字符串更新=更新设置NAMES名字= \\
            + edtAdd.getText()的toString()+\\,其中_id =+ ID。
    mDatabase.execSQL(更新);
    mDatabase.close();
}

}

 包com.example.databasesample;
 公共类DatabaseConstants {公共静态最后弦乐CREATE_TABLE_PROFILE_QUERY =CREATE TABLE名称(
        +_id整数主键自动增量+名VARCHAR        +);

}

 包com.example.databasesample;
  进口android.content.Context;
  android.database.sqlite.SQLiteDatabase;
  进口android.database.sqlite.SQLiteOpenHelper;
  公共类DataBaseSqlLiteHelper扩展SQLiteOpenHelper {
私有静态最后弦乐DATABASE_NAME =我的样本数据库;
私有静态最终诠释DATABASE_VERSION = 1;公共DataBaseSqlLiteHelper(上下文的背景下){
    超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
}@覆盖
公共无效的onCreate(SQLiteDatabase DB)
{
    db.execSQL(DatabaseConstants.CREATE_TABLE_PROFILE_QUERY);}@覆盖
公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){}

}

 包com.example.databasesample;
  公共类DbModel之后{
字符串ID;
字符串名称;
公共字符串的getId(){
    返回ID;
}
公共无效SETID(字符串ID){
    this.id = ID;
}
公共字符串的getName(){
    返回名称;
}
公共无效setname可以(字符串名称){
    this.name =名称;
}

}

 包com.example.databasesample;
  进口的java.util.ArrayList;
  进口android.content.Context;
  进口android.view.LayoutInflater;
  进口android.view.View;
  进口android.view.View.OnClickListener;
  进口android.view.ViewGroup;
  进口android.widget.BaseAdapter;
  进口android.widget.Button;
  进口android.widget.TextView;

公共类ListAdapter延伸BaseAdapter {

 上下文mContext;
ArrayList的< D​​bModel之后> mArrayList;公共ListAdapter(上下文mContext,ArrayList的< D​​bModel之后>型号){
    // TODO自动生成构造函数存根
    this.mArrayList =模型;
    this.mContext = mContext;
}@覆盖
公众诠释的getCount(){
    // TODO自动生成方法存根
    返回mArrayList.size();
}@覆盖
公共对象的getItem(INT为arg0){
    // TODO自动生成方法存根
    返回将arg0;
}@覆盖
众长getItemId(INT为arg0){
    // TODO自动生成方法存根
    返回将arg0;
}@覆盖
公共查看getView(最终诠释的立场,观点convertView,父母的ViewGroup){
    // TODO自动生成方法存根
    如果(convertView == NULL){
        LayoutInflater mLayoutInflater =(LayoutInflater)mContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = mLayoutInflater.inflate(R.layout.list_layout,父母,
                假);
        TextView的txtId =(TextView中)convertView.findViewById(R.id.txtId);
        txtId.setText(mArrayList.get(位置).getId());
        TextView的txtName的=(TextView中)convertView
                .findViewById(R.id.txtName);
        txtName.setText(mArrayList.get(位置).getName());
        按钮btnUpdate =(按钮)convertView.findViewById(R.id.btnUpdate);
        btnUpdate.setOnClickListener(新OnClickListener(){            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
                MainActivity.updateItem(mArrayList.get(位置).getId());
            }
        });    }
    返回convertView;
}

}

  // activity_main.xml中   <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
的xmlns:工具=htt​​p://schemas.android.com/tool​​s
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:paddingBottom会=@扪/ activity_vertical_margin
机器人:paddingLeft =@扪/ activity_horizo​​ntal_margin
机器人:paddingRight =@扪/ activity_horizo​​ntal_margin
机器人:paddingTop =@扪/ activity_vertical_margin
工具:上下文=MainActivity。><的EditText
    机器人:ID =@ + ID / edtEnterName
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =WRAP_CONTENT
    机器人:提示=输入名称/><按钮
    机器人:ID =@ + ID / btnAdd
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_below =@ + ID / edtEnterName
    机器人:文字=添加到资料库/><按钮
    机器人:ID =@ + ID / btnShow
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_below =@ + ID / btnAdd
    机器人:文本=显示/>< ListView控件
    机器人:ID =@ + ID / LISTNAME
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_below =@ + ID / btnShow>
< /&的ListView GT;

  // listlayout.xml
  < XML版本=1.0编码=UTF-8&GT?;
 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent><的TextView
    机器人:ID =@ + ID / txtId
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT/><的TextView
    机器人:ID =@ + ID / txtName的
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_marginLeft =20dp
    机器人:layout_toRightOf =@ + ID / txtId/><按钮
    机器人:ID =@ + ID / btnUpdate
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_below =@ + ID / txtName的
    机器人:文字=更新/>

下面我做一个应用程序,可以在其中添加,编辑和更新您的database.i使用两大类第一DataBaseSqlLiteHelper.java创建DATABSE和DatabaseConstants.java创建表。要删除数据库点击项目名录和第一次更新在此输入编辑text.comment值,如果你需要进一步的帮助。

I have made an application simple in android for database practice,as i have no idea about Sqlite database I've gone through so many links for it,But most of them are complex,I have created 4 activities 1st (mainActivity) contains 3 Buttons "add","Edit", and "View" in 2nd activity (AddActivity) I have made 3 EditTexts its entered values should be stored in database.So can you please tell me easy steps for doing same?

MainActivity.java

package com.example.db;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button add=(Button)findViewById(R.id.button1);
        Button edit=(Button)findViewById(R.id.button2);
        Button view=(Button)findViewById(R.id.button3);

        add.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub]
            Intent i=new Intent(MainActivity.this,AddActivity.class);
            startActivity(i);

        }
    });
    edit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent i=new Intent(MainActivity.this,EditActivity.class);
            startActivity(i);

        }
    });

    view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent i=new Intent(MainActivity.this,ViewActivity.class);
            startActivity(i);
        }
    });
    }

    }

AddActivity.java

 package com.example.db;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class AddActivity extends Activity {
EditText name,addres,phon;
Button ad,cn;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add);

        name = (EditText)findViewById(R.id.name);
        addres=(EditText)findViewById(R.id.address);
        phon = (EditText)findViewById(R.id.phone);

        ad =(Button)findViewById(R.id.add);
        cn=(Button)findViewById(R.id.cancel);
        final SQLiteDatabase db = openOrCreateDatabase("Mydb",MODE_PRIVATE, null);
        db.execSQL("create table if not exists simple(name varchar,address varchar,phone varchar");
        ad.setOnClickListener(new OnClickListener() {
            String n=name.getText().toString();
            String a=addres.getText().toString();
            String p= phon.getText().toString();
            @Override
            public void onClick(View v) {

                db.execSQL("insert into simple values('n','a','p')");
                Cursor c =db.rawQuery("select * from simple",null);
                c.moveToFirst();

            }
        });

        cn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i =new Intent(AddActivity.this,MainActivity.class);
                startActivity(i);
            }
        });
    }
}

main.xml

<RelativeLayout 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"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="100dp"
        android:layout_marginTop="92dp"
        android:text="Add" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button1"
        android:layout_below="@+id/button1"
        android:layout_marginTop="28dp"
        android:text="Edit" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button2"
        android:layout_below="@+id/button2"
        android:layout_marginTop="37dp"
        android:text="View" />

</RelativeLayout>

Add.xml

<RelativeLayout 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"
    tools:context=".AddActivity" >

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="60dp"
        android:text="phone"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView3"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="17dp"
        android:layout_marginTop="14dp"
        android:text="Name"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_alignParentRight="true"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="80dp"
        android:layout_toLeftOf="@+id/editText2"
        android:text="Address"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/address"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/textView2"
        android:ems="10"
        android:inputType="textPostalAddress" />

    <EditText
        android:id="@+id/phone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView3"
        android:layout_alignParentRight="true"
        android:ems="10"
        android:inputType="phone" />

    <Button
        android:id="@+id/add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/phone"
        android:layout_marginTop="62dp"
        android:layout_toRightOf="@+id/textView1"
        android:text="Add" />

    <Button
        android:id="@+id/cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/add"
        android:layout_marginLeft="36dp"
        android:layout_toRightOf="@+id/add"
        android:text="Cancel" />

</RelativeLayout>

解决方案

ok I think you want to add the value of edit text into your db

 package com.example.databasesample;
 import java.util.ArrayList;
 import android.app.Activity;
 import android.content.ContentValues;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.os.Bundle;
 import android.view.Menu;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ListView;

public class MainActivity extends Activity implements OnClickListener {
static EditText edtAdd;
Button btnAdd, btnShow;
ListView listName;
static DataBaseSqlLiteHelper mBaseSqlLiteHelper;
DBModel mDbModel;
ArrayList<DBModel> mArrayList;
ListAdapter mAdapter;

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

    mArrayList = new ArrayList<DBModel>();
    mBaseSqlLiteHelper = new DataBaseSqlLiteHelper(MainActivity.this);
    mBaseSqlLiteHelper.getReadableDatabase();
    mBaseSqlLiteHelper.getWritableDatabase();

}

public void initialize() {
    edtAdd = (EditText) findViewById(R.id.edtEnterName);
    btnAdd = (Button) findViewById(R.id.btnAdd);
    btnAdd.setOnClickListener(this);
    btnShow = (Button) findViewById(R.id.btnShow);
    btnShow.setOnClickListener(this);
    listName = (ListView) findViewById(R.id.listName);
    listName.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub
            deleteItem(mArrayList.get(arg2).getId());

        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.btnAdd:
        addName(edtAdd.getText().toString());
        break;
    case R.id.btnShow:
        showNames();
        break;
    default:
        break;
    }

}
    // for adding values
public void addName(String name) {
    SQLiteDatabase mOpenHelper = mBaseSqlLiteHelper.getWritableDatabase();
    ContentValues mContentValues = new ContentValues();
    mContentValues.put("name", name);
    mOpenHelper.insert("NAMES", null, mContentValues);
    mOpenHelper.close();
}
    //showing values in list
public void showNames() {
    String selectQuery = "SELECT * FROM NAMES";
    SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase();
    Cursor mCursor = mDatabase.rawQuery(selectQuery, null);
    if (mCursor.moveToFirst()) {
        do {
            mDbModel = new DBModel();
            mDbModel.setId(mCursor.getString(0));
            mDbModel.setName(mCursor.getString(1));
            mArrayList.add(mDbModel);

        } while (mCursor.moveToNext());
    }
    mAdapter = new ListAdapter(MainActivity.this, mArrayList);
    listName.setAdapter(mAdapter);
}
     deleteing values
public void deleteItem(String id) {
    SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase();

    String delete = "Delete from NAMES Where _id =" + id;

    mDatabase.execSQL(delete);
    mDatabase.close();
    mAdapter.notifyDataSetChanged();
    mArrayList.remove(id);

}
    //updating item
public static void updateItem(String id) {
    SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase();

    String update = "Update NAMES set name=\""
            + edtAdd.getText().toString() + "\" where _id=" + id;
    mDatabase.execSQL(update);
    mDatabase.close();
}

}

 package com.example.databasesample;
 public class DatabaseConstants {

public static final String CREATE_TABLE_PROFILE_QUERY = "CREATE TABLE NAMES("
        + " _id integer primary key autoincrement," + " name VARCHAR"

        + ")";

}

  package com.example.databasesample;
  import android.content.Context;
  android.database.sqlite.SQLiteDatabase;
  import android.database.sqlite.SQLiteOpenHelper;
  public class DataBaseSqlLiteHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "My Sample DataBase";
private static final int DATABASE_VERSION = 1;

public DataBaseSqlLiteHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) 
{
    db.execSQL(DatabaseConstants.CREATE_TABLE_PROFILE_QUERY);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

  package com.example.databasesample;
  public class DBModel {
String id;
String name;
public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}

}

  package com.example.databasesample;
  import java.util.ArrayList;
  import android.content.Context;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.view.ViewGroup;
  import android.widget.BaseAdapter;
  import android.widget.Button;
  import android.widget.TextView;

public class ListAdapter extends BaseAdapter {

Context mContext;
ArrayList<DBModel> mArrayList;

public ListAdapter(Context mContext, ArrayList<DBModel> models) {
    // TODO Auto-generated constructor stub
    this.mArrayList = models;
    this.mContext = mContext;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return mArrayList.size();
}

@Override
public Object getItem(int arg0) {
    // TODO Auto-generated method stub
    return arg0;
}

@Override
public long getItemId(int arg0) {
    // TODO Auto-generated method stub
    return arg0;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    if (convertView == null) {
        LayoutInflater mLayoutInflater = (LayoutInflater) mContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = mLayoutInflater.inflate(R.layout.list_layout, parent,
                false);
        TextView txtId = (TextView) convertView.findViewById(R.id.txtId);
        txtId.setText(mArrayList.get(position).getId());
        TextView txtName = (TextView) convertView
                .findViewById(R.id.txtName);
        txtName.setText(mArrayList.get(position).getName());
        Button btnUpdate=(Button)convertView.findViewById(R.id.btnUpdate);
        btnUpdate.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                MainActivity.updateItem(mArrayList.get(position).getId());
            }
        });

    }
    return convertView;
}

}

//activity_main.xml

   <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<EditText
    android:id="@+id/edtEnterName"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Enter Name" />

<Button
    android:id="@+id/btnAdd"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/edtEnterName"
    android:text="Add to Database" />

<Button
    android:id="@+id/btnShow"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/btnAdd"
    android:text="Show" />

<ListView
    android:id="@+id/listName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/btnShow" >
</ListView>

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

<TextView
    android:id="@+id/txtId"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<TextView
    android:id="@+id/txtName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_toRightOf="@+id/txtId" />

<Button
    android:id="@+id/btnUpdate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/txtName"
    android:text="Update" />

Here I make an app in which you can add ,edit and update your database.i use Two main classes First DataBaseSqlLiteHelper.java to create databse and DatabaseConstants.java to create table. To delete item from db click on list and for update first enter value in edit text.comment on this if you need further help.

这篇关于在Android的SQLite数据库的做法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆