2013-05-08 77 views
0

我做了一个简单的应用程序在Android的数据库实践,因为我不知道Sqlite database我已经经历了这么多的链接,但其中大多数是复杂的,我已经创建了4个活动1st(mainActivity)包含3 Buttons“添加”,“编辑”和“查看”在第二个活动(AddActivity)我已经3 01​​它的输入值应该存储在数据库。所以,你可以告诉我做简单的步骤做同样的?在Android的SQLite数据库实践

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> 
+0

你在问如何在SQLite中存储一个值? – 2013-05-08 13:05:33

+0

是...兄弟...通过简单的方式.. – jigar 2013-05-08 13:07:34

+0

http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/ – Raghunandan 2013-05-08 13:08:29

回答

0

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

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; 

公共类ListAdapter延伸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" /> 

这里我做一个应用程序,可以在其中添加,编辑和更新您的database.i使用两类主要首先DataBaseSqlLiteHelper.java创建DATABSE和DatabaseConstants.java创建表。如果您需要进一步的帮助,要从数据库中删除项目,点击列表并更新首先在编辑text.comment中输入值。

+0

Thanx ..... Rishab ... Bro ... ListView是可以的。但是请问我可以告诉我如何将EditText的值存储在数据库和数据库中如何获取并显示在textView中? – jigar 2013-05-08 13:40:05

+0

你好朋友如果你经历了这个应用程序,我已经完成了你想要的,并在上面的问题中提及。我通过单击添加到数据库按钮将我的编辑文本的值存储在数据库中。并且如果要显示该值在textvie中,您可以通过给出该数据库的列索引来显示。我认为您需要更多地了解数据库。 – 2013-05-09 04:10:19

0

,如果你想只有一个值,显示其数据库,那么你可以像这样 采取一个TextView

TextView txtName; 

初始化它在我上面的初始化的方法()确定; 然后做出一个方法来获得单值

// Getting single Name to textView 
public void getContact(String id) { 
    SQLiteDatabase db = mBaseSqlLiteHelper.getReadableDatabase(); 
    String select="Select name from NAMES Where _id ="+id; 
    Cursor mCursor=db.rawQuery(select,null); 
    if (mCursor!=null) { 
     mCursor.moveToFirst(); 
     String name=mCursor.getString(0); 
     txtName.setText(name); 
    } 
    db.close(); 
} 

然后调用一些按钮的点击此方法并传入你要选择的行的id。