activity_main
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.mysqlite.MainActivity"> <EditText android:layout_width="match_parent" android:textSize="20sp" android:hint="请输入id" android:id="@+id/id_et" android:layout_height="wrap_content" /> <EditText android:layout_width="match_parent" android:textSize="20sp" android:hint="请输入姓名" android:id="@+id/name_et" android:layout_height="wrap_content" /> <EditText android:layout_width="match_parent" android:textSize="20sp" android:hint="请输入年龄" android:inputType="phone" android:id="@+id/age_et" android:layout_height="wrap_content" /> <EditText android:layout_width="match_parent" android:textSize="20sp" android:hint="请输入性别" android:id="@+id/sex_et" android:layout_height="wrap_content" /> <LinearLayout android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="wrap_content"> <Button android:layout_weight="1" android:onClick="Click" android:layout_width="match_parent" android:text="添加数据" android:id="@+id/insert_bt" android:textSize="15sp" android:layout_height="wrap_content" /> <Button android:layout_weight="1" android:onClick="Click" android:layout_width="match_parent" android:text="删除数据" android:id="@+id/delete_bt" android:textSize="15sp" android:layout_height="wrap_content" /> <Button android:layout_weight="1" android:onClick="Click" android:layout_width="match_parent" android:text="修改数据" android:id="@+id/update_bt" android:textSize="15sp" android:layout_height="wrap_content" /> <Button android:layout_weight="1" android:onClick="Click" android:layout_width="match_parent" android:text="查询数据" android:id="@+id/query_bt" android:textSize="15sp" android:layout_height="wrap_content" /> </LinearLayout> <ListView android:layout_width="match_parent" android:id="@+id/info_lv" android:layout_height="match_parent" /> </LinearLayout>
item_layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/id_tv" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1"/> <TextView android:id="@+id/name_tv" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1"/> <TextView android:id="@+id/age_tv" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1"/> <TextView android:id="@+id/sex_tv" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1"/> </LinearLayout>
MainActivity
public class MainActivity extends AppCompatActivity { private EditText idEt; private EditText nameEt; private EditText ageEt; private EditText sexEt; private ListView infoLv; private SQLiteHelper helper; private SQLiteDatabase db; String tableName = "student"; private Cursor cursor; private SimpleCursorAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); idEt = (EditText) findViewById(R.id.id_et); nameEt = (EditText) findViewById(R.id.name_et); ageEt = (EditText) findViewById(R.id.age_et); sexEt = (EditText) findViewById(R.id.sex_et); infoLv = (ListView) findViewById(R.id.info_lv); helper = new SQLiteHelper(this,"mydb.db",null,1); db = helper.getWritableDatabase(); cursor = db.query(tableName,null,null,null,null,null,null,null); //实例化适配器,参数1.上下文对象,2.行的布局文件,3.从哪列取值,4.放到哪个控件上,5.标记(观察者 adapter = new SimpleCursorAdapter(this, R.layout.item_layout,cursor, new String[]{"_id","name","age","sex"}, new int[]{R.id.id_tv,R.id.name_tv,R.id.age_tv,R.id.sex_tv}, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); infoLv.setAdapter(adapter); } public void Click(View view) { String id = idEt.getText().toString(); String name = nameEt.getText().toString(); String age = ageEt.getText().toString(); String sex = sexEt.getText().toString(); ContentValues values=new ContentValues(); switch (view.getId()){ case R.id.insert_bt: values.put("name",name); values.put("age",age); values.put("sex",sex); long insert = db.insert(tableName, null, values); if (insert>0){ Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show(); idEt.setText(""); nameEt.setText(""); ageEt.setText(""); sexEt.setText(""); } getData(); break; case R.id.delete_bt: int delete = db.delete(tableName, "_id = ?", new String[]{id}); if (delete>0){ Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show(); idEt.setText(""); nameEt.setText(""); ageEt.setText(""); sexEt.setText(""); } getData(); break; case R.id.update_bt: values.put("name",name); int update = db.update(tableName, values, "_id = ?", new String[]{id}); if (update>0){ Toast.makeText(this, "修改成功", Toast.LENGTH_SHORT).show(); idEt.setText(""); nameEt.setText(""); ageEt.setText(""); sexEt.setText(""); } getData(); break; case R.id.query_bt: Cursor query = db.query(tableName, null, "sex = ?", new String[]{sex}, null, null, null); adapter.changeCursor(query); getData(); idEt.setText(""); nameEt.setText(""); ageEt.setText(""); sexEt.setText(""); break; } } public void getData() { cursor = db.query(tableName, null, null, null, null, null, null, null); adapter.changeCursor(cursor); } }
SQLiteHelper
public class SQLiteHelper extends SQLiteOpenHelper { public SQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table if not exists student(_id integer primary key autoincrement,name varchar(10),age integer,sex varchar(4))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }