标签(空格分隔): Androidjavascript
-任务要求
1 将学生信息存入数据库
2 显示全部学生信息列表
3 删除数据库表中第一条信息。
如图所示:
java
思路:android
-删除数据库表中的第一条数据
删除的话经过数据库语句delete语句实现 用cursor来定位第一条数据来实现删除sql
XMl布局:
main_activity数据库
<EditText android:id="@+id/edt_cont" android:layout_width="match_parent" android:layout_height="wrap_content" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_weight="1" android:id="@+id/btn_add" android:layout_width="0dp" android:layout_height="wrap_content" style="@style/add"/> <Button android:layout_weight="1" android:id="@+id/btn_del" android:layout_width="0dp" android:layout_height="wrap_content" style="@style/del"/> </LinearLayout> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent"/>
item后端
<TextView android:id="@+id/txt_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=""/>
在数据库建立部分须要一个SQLiteOpenHelper打开SQLite并建立表,因此我自定义了一个MyDBHelper类继承它ide
-MyDBHelper类布局
public class MyDBHelper extends SQLiteOpenHelper { private static final String name = "count"; private static final int version = 1; private String sql = "create table person(_id int autoincrement primary key ," + "name varchar(30) not null)"; public MyDBHelper(Context context) { super(context, name, null, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("drop table if exists person"); onCreate(db); } }
同时须要一个类对表进行增删该查,这些操做要在具体的实例上也就表的行或者列进行 所以还须要一个类来表示表的行或者列。这里我是对行进行增删改查this
public class PersonDAO { private SQLiteDatabase db; private MyDBHelper helper; public PersonDAO(Context context) {helper = new MyDBHelper(context);} public void insert(Person person) { db = helper.getWritableDatabase(); String sql = "insert into person(name)"+ "values(?)"; db.execSQL(sql,new Object[]{person.getName()}); } public void delete(int id) { db = helper.getWritableDatabase(); String sql = "delete from person where _id =?"; db.execSQL(sql,new Object[]{id}); } public Cursor selectAll() { db = helper.getReadableDatabase(); Cursor cursor = db.query("person",null,null,null,null,null,null); return cursor; } }
Person类(表的每一行)code
public class Person { private String name; private int _id; public Person() {} public Person(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int get_id() { return _id; } public void set_id(int _id) { this._id = _id; } }
在将数据导入界面时还须要用到CursorAdpter,我自定义了一个CursorAdpter
MyCursorAdpter类
public class MyCursorAdpter extends CursorAdapter { public MyCursorAdpter(Context context, Cursor c, int flags) { super(context, c, 0); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { return LayoutInflater.from(context).inflate(R.layout.item,parent,false); } @Override public void bindView(View view, Context context, Cursor cursor) { TextView txt_name = (TextView)view.findViewById(R.id.txt_name); txt_name.setText(cursor.getString(cursor.getColumnIndex("name"))); } }
而后是在Mainactivity实现功能的代码
获取控件并对事件实施监听
private Button add; private Button del; private EditText con; private ListView lv; private PersonDAO dao; private Cursor c; private Person person; private MyCursorAdpter adp; add = (Button)findViewById(R.id.btn_add); del = (Button)findViewById(R.id.btn_del); con = (EditText)findViewById(R.id.edt_cont); lv = (ListView)findViewById(R.id.lv); add.setOnClickListener(this); del.setOnClickListener(this);
增长学生信息
String name =con.getText().toString(); if(TextUtils.isEmpty(name)){ Toast.makeText(this,"内容不能为空",Toast.LENGTH_SHORT).show(); }else { person = new Person(name); dao = new PersonDAO(this); dao.insert(person); c = dao.selectAll(); adp = new MyCursorAdpter(this,c,0); lv.setAdapter(adp); adp.notifyDataSetChanged();
删除第一条记录
if(person==null){ Toast.makeText(this,"记录不能为空",Toast.LENGTH_SHORT).show(); }else { c.moveToFirst(); person = new Person(); person.set_id(c.getInt(c.getColumnIndex("_id"))); dao.delete(person.get_id()); addAdp(); adp.notifyDataSetChanged(); break; } }
addAdp()方法
private void addAdp() { if(c!=null){ dao = new PersonDAO(this); c = dao.selectAll(); adp = new MyCursorAdpter(this,c,0); lv.setAdapter(adp); } }
图片成果展现