1 activity可以继承扩展 ListActivity
 比如:
class DummyNote extends ListActivity {
 private String[] note_array = {
      
            "gasolin",
            "crota",
            "louk",
            "magicion"
          
    };
  ListAdapter adapter = new ArrayAdapter(this,
                    android.R.layout.simple_list_item_1,
                    note_array);
        setListAdapter(adapter);


}

2 使用sqlite
  在新建立工程后,打开模拟器后,在sdk的tools下
运行adb shell
cd data/data/
ls
 cd 工程名
mkdir databases
cd databases
sqlite3 notes.db (建立了一个notes.db数据库)
create talbe notes
......;
sqlite>.databases  (查看当前目录下的数据库列表)
sqllite>.tables  (查看所有数据表)
     .schema notes (查看指定表的结构)
离开sqllite:  .exit


3  CRUD的典型例子
 public class NotesDbAdapter {
 
 private static final String DATABASE_NAME = "notes.db";
    private static final int DATABASE_VERSION = 1;

    private static final String DATABASE_TABLE = "notes";

    private static final String DATABASE_CREATE =
    "create table notes("
        +"_id INTEGER PRIMARY KEY,"
        +"note TEXT,"
        +"created INTEGER,"
        +"modified INTEGER"
    +");";

 private static class DatabaseHelper extends SQLiteOpenHelper {

  public DatabaseHelper(Context context) {
   super(context, DATABASE_NAME, null, DATABASE_VERSION);
   // TODO Auto-generated constructor stub
  }

  @Override
  public void onCreate(SQLiteDatabase db) {
   // TODO Auto-generated method stub
   db.execSQL(DATABASE_CREATE);
  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   // TODO Auto-generated method stub
   db.execSQL("DROP TABLE IF EXISTS "+DATABASE_TABLE);
   onCreate(db);
  }

    }
 
    private Context mCtx = null;
    private DatabaseHelper dbHelper ;
    private SQLiteDatabase db;

    /** Constructor */
    public NotesDbAdapter(Context ctx) {
        this.mCtx = ctx;
    }

    public NotesDbAdapter open () throws SQLException {
        dbHelper = new DatabaseHelper(mCtx);
        db = dbHelper.getWritableDatabase();
        return this;
    }

    public void close() {
        dbHelper.close();
    }

    //start query
    public static final String KEY_ROWID = "_id";
    public static final String KEY_NOTE = "note";
    public static final String KEY_CREATED = "created";

    String[] strCols = new String[] {
        KEY_ROWID,
        KEY_NOTE,
        KEY_CREATED
    };

    /*
    public Cursor getall() {
        return db.rawQuery("SELECT * FROM notes", null);
    }
    */
   
    /*
    // get all entries
    public Cursor getall() {
        return db.query(DATABASE_TABLE, //Which table to Select
             strCols,// Which columns to return
             null, // WHERE clause
             null, // WHERE arguments
             null, // GROUP BY clause
             null, // HAVING clause
             null //Order-by clause
             );
    }
    */
   
    // get all entries
    public Cursor getall() {
        return db.query(DATABASE_TABLE,
            new String[] {KEY_ROWID, KEY_NOTE, KEY_CREATED},
            null, null, null, null, null);
    }

    // add an entry
    public long create(String Note) {
        Date now = new Date();
        ContentValues args = new ContentValues();
        args.put(KEY_NOTE, Note);
        args.put(KEY_CREATED, now.getTime());

        return db.insert(DATABASE_TABLE, null, args);
    }

    //remove an entry
    public boolean delete(long rowId) {
        return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
    }
   
    //query single entry
    public Cursor get(long rowId) throws SQLException {
        Cursor mCursor = db.query(true,
                DATABASE_TABLE,
                new String[] {KEY_ROWID, KEY_NOTE, KEY_CREATED},
                KEY_ROWID + "=" + rowId,
                null, null, null, null, null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

    //update
    public boolean update(long rowId, String note) {
        ContentValues args = new ContentValues();
        args.put(KEY_NOTE, note);

        return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
    }


}

主程序调用:
    private NotesDbAdapter mDbHelper;
    private Cursor mNotesCursor;
   
    private void setAdapter() {
     mDbHelper = new NotesDbAdapter(this);
        mDbHelper.open();
        fillData();

}
   private void fillData() {
        mNotesCursor = mDbHelper.getall();
        startManagingCursor(mNotesCursor);

        String[] from = new String[]{"note"};
        int[] to = new int[]{android.R.id.text1};

        // Now create a simple cursor adapter
        SimpleCursorAdapter adapter =
                    new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, mNotesCursor,

from, to);
        setListAdapter(adapter);
    }
   
新增记录:
   public long create(String Note) {
        Date now = new Date();
        ContentValues args = new ContentValues();
        args.put(KEY_NOTE, Note);
       。。。。。。

        return db.insert(DATABASE_TABLE, null, args);
    }
删除记录:
   public boolean delete(long rowId) {
        return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
    }
  mDbHelper.delete(getListView().getSelectedItemId());//这里用getListView().getSelectedItemId()获得选定

删除哪一条记录

查询记录:
//query single entry
    public Cursor get(long rowId) throws SQLException {
        Cursor mCursor = db.query(true,
                DATABASE_TABLE,
                new String[] {KEY_ROWID, KEY_NOTE, KEY_CREATED},
                KEY_ROWID + "=" + rowId,
                null, null, null, null, null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }
更新记录:
 //update
    public boolean update(long rowId, String note) {
        ContentValues args = new ContentValues();
        args.put(KEY_NOTE, note);

        return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
    }
4 activity中的相关,比如选了A中的记录,然后打开B来编辑,B编辑完后,再返回A。
   首先在B中,接收BUNDLE:
 private void showViews(Bundle savedInstanceState) {
        //mRowId = savedInstanceState != null ? savedInstanceState.getLong(NotesDbAdapter.KEY_ROWID) :

null;
        if (mRowId == null) {
            Bundle extras = getIntent().getExtras();
            mRowId = extras != null ? extras.getLong(NotesDbAdapter.KEY_ROWID) : null;
        }

 //把编辑的数据拿出来
  if (mRowId != null) {
            Cursor note = mDbHelper.get(mRowId);
            startManagingCursor(note);

            field_note.setText(note.getString(
                    note.getColumnIndexOrThrow(NotesDbAdapter.KEY_NOTE)
                ));
        }
  当编辑成功提交后,
     public void onClick(View view) {
                mDbHelper.update(mRowId, field_note.getText().toString());
                setResult(RESULT_OK);
                finish();
   这里的setResult,表示这个activity成功,返回

在调用方中,如果是一个LISTVIEW的列表的话,点某一个列
  protected void onListItemClick(ListView l, View v, int position, long id) {
     super.onListItemClick(l, v, position, id);
     Intent intent = new Intent(this, NoteEdit.class);
     intent.putExtra(NotesDbAdapter.KEY_ROWID, id);
     startActivityForResult(intent, ACTIVITY_EDIT);
 }
   这里的startActivityForResult表示的是要调用另外一个activity,并且要求结果返回
同时:
  protected void onActivityResult(int requestCode, int resultCode,
                                 Intent intent) {
     super.onActivityResult(requestCode, resultCode, intent);
     fillData();
 }

5 长按菜单
    A 在oncreate函数中,注册
     registerForContextMenu(getListView());//说明点listview时会使用长按菜单
   B public void onCreateContextMenu(ContextMenu menu, View v,
   ContextMenuInfo menuInfo) {
  // TODO Auto-generated method stub
  menu.add(0, MENU_DELETE, 0,  "删除记事");
        menu.setHeaderTitle("要怎么处理这个项目");
  super.onCreateContextMenu(menu, v, menuInfo);
 }

更多相关文章

  1. Android(安卓)Java方法链起来!链式调用方法、仿Builder 等。
  2. android 9.0 在rk3326平台上hidl的使用
  3. Android(安卓)调用系统相机拍照的返回结果
  4. android 分享功能
  5. Android(安卓)完全掌握Service
  6. android中获取wifi信息
  7. Android调用Webview中的js方法
  8. android调用系统邮件组件(intent匹配的流程)
  9. Android(安卓)实现手机震动功能

随机推荐

  1. Android文件下载进度条的实现
  2. Android实现录制视频
  3. Android的AlertDialog的6种使用情景
  4. android沉浸式状态栏和虚拟按键
  5. android中把 SharedPreferences抽出的一
  6. Android(安卓)webview doesn't display w
  7. android实现gallery一个一个滑动
  8. Android(安卓)AsyncTask实例
  9. android之文件的写入与读取
  10. Android(安卓)获取ip地址