android项目-超级简略的android通讯录

android项目--超级简单的android通讯录哥最近做了一个小项目《铁哥们通讯录》,作为练手项目给大家分享一下。

android项目--超级简单的android通讯录

哥最近做了一个小项目《铁哥们通讯录》,作为练手项目给大家分享一下。

功能也很简单,一个主界面,然后在主界面弹出一个添加界面,一个信息列表。

其中只用到了1个activity,1个sqlite帮助类。

下面是activity类

???
android项目-超级简略的android通讯录


android项目-超级简略的android通讯录


android项目-超级简略的android通讯录
?
?
?
?

?

package com.feelling.ui; import java.util.ArrayList;  import com.woz.util.Config;import com.woz.util.DataBaseHelper; import android.app.AlertDialog;import android.content.ContentValues;import android.content.DialogInterface;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.KeyEvent;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener; import android.widget.Button;import android.widget.EditText; /****  * @production  铁哥们通讯录 * @company     android技术帮--【技术成就梦想】 * @department  群号:85506951 * @author      良仔(qq:953486326) * {@docRoot    通讯录的启动初始化界面 } * @version     1.0 * @since       2011\9\21 * @see         欢迎对android感兴趣的童鞋加入android技术帮,共同学习,共同进步! * ****/public class MainActivity extends ProDialogImp {    /** Called when the activity is first created. *///---------- main ----------------Button addButton,queryButton;  // 按钮-添加,查询//---------- add user ----------------  EditText username,phone; String   userStr,phoneStr;//----------- list user -----------------------    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);     // main    addButton = (Button)findViewById(R.id.addUserBtn);    queryButton = (Button)findViewById(R.id.listUserBtn);              // 添加        addButton.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {  // 这里直接跳到添加的ui中去//  setContentView(R.layout.add_user);  LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.add_user, (ViewGroup)findViewById(R.id.dialog));    // 内容元素   username = (EditText)layout.findViewById(R.id.userNameET);       phone = (EditText)layout.findViewById(R.id.phoneNumberET);  new AlertDialog.Builder(MainActivity.this).setTitle("添加联系人").setView(layout)     .setPositiveButton("确定",  new DialogInterface.OnClickListener() { //添加事件     public void onClick(DialogInterface dialog, int which) {       // 这里直接跳到添加的ui中去   System.out.println(" on insert table user ---> ");     DataBaseHelper dbHelper = new DataBaseHelper(MainActivity.this,Config.DB_NAME);              SQLiteDatabase sdb = dbHelper.getWritableDatabase();                           // put value               userStr = username.getText().toString();              phoneStr = phone.getText().toString();              if(userStr!=null&&phoneStr!=null){               ContentValues cv = new ContentValues();                   // cv.put("id", 1);                   cv.put("title", userStr);                   cv.put("content", phoneStr);                   sdb.insert(Config.TABLE_NAME, null, cv);                    showAlert("数据添加成功!");              }else{               showAlert("数据数据格式错误,请重新输入!");              }   }}).setNegativeButton("取消", null).show();          }});               // 查询        queryButton.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) { DataBaseHelper dbHelper = new DataBaseHelper(MainActivity.this,Config.DB_NAME);        SQLiteDatabase db = dbHelper.getReadableDatabase();        Cursor  cs = db.query(Config.TABLE_NAME, new String[]{"_id","title","content"}, null, null, null, null, null);                  ArrayList<String> alist = new ArrayList<String>();        while(cs.moveToNext()){              int id = cs.getInt(cs.getColumnIndex("_id"));               String name = cs.getString(cs.getColumnIndex("title"));              String con = cs.getString(cs.getColumnIndex("content"));              alist.add(id+"."+name+"["+con+"]");               System.out.println(" query [t_note]--> id = "+ id +" name = " + name +" con = " + con  );              }           final    String[] contacts = new String[alist.size()];           for(int a=0;a<alist.size();a++){          contacts[a] = alist.get(a);          }                     new AlertDialog.Builder(MainActivity.this).setTitle("内容列表").setIcon(android.R.drawable.ic_dialog_info).setItems(   contacts, new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {//dialog.dismiss();   String artId = contacts[which].substring(0, 1);   alertDeleteOpt(artId);   //  showAlert("msg --> " + artId);}}) .setNegativeButton("取消", null).show();             /*   ListAdapter listapt = new SimpleCursorAdapter(MainActivity.this,            android.R.layout.simple_expandable_list_item_1,            cs,            new String[]{"title"},            new int[]{android.R.id.text1} );                ListView  listUser = new ListView(MainActivity.this);          listUser.setAdapter(listapt);        setContentView(listUser);  */}        });     }  // 删除数据public void deleteData(String id){  DataBaseHelper dbHelper = new DataBaseHelper(MainActivity.this,Config.DB_NAME);  SQLiteDatabase sdb = dbHelper.getWritableDatabase();  sdb.delete(Config.TABLE_NAME,  " _id=?", new String[]{id}); //删除数据 } /** *   删除操作 */public void alertDeleteOpt(final String id){  new AlertDialog.Builder(this)    .setCancelable(false)    .setMessage("您确定要删除这条信息吗?")    .setPositiveButton("确定", new DialogInterface.OnClickListener() {     public void onClick(DialogInterface dialog, int which) {         deleteData(id); }}) .setNegativeButton("取消", new DialogInterface.OnClickListener() {     public void onClick(DialogInterface dialog, int which) { dialog.cancel(); }}) .show(); }    //退出程序  @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {  if (keyCode == KeyEvent.KEYCODE_BACK)// 返回按键  {    new AlertDialog.Builder(this)    .setCancelable(false)    .setIcon(android.R.drawable.btn_star)    .setTitle("退出")    .setMessage("您确认要退出程序吗?")    .setPositiveButton("确定", new DialogInterface.OnClickListener() {     public void onClick(DialogInterface dialog, int which) {       MainActivity.this.finish();    //关闭程序的核心方法 }}) .setNegativeButton("取消", new DialogInterface.OnClickListener() {     public void onClick(DialogInterface dialog, int which) { dialog.cancel(); }}) .show(); }return true;}  }?
下面sqlite帮助类,其他的不太重要,所以就放到附件了,欢迎大家下载共同讨论学习。

package com.woz.util;??import android.content.Context; import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.database.sqlite.SQLiteDatabase.CursorFactory; ? /**** ?* @production? 铁哥们通讯录?* @company???? android技术帮--【技术成就梦想】?* @department? 群号:85506951?* @author????? 良仔(qq:953486326)?* {@docRoot??? 访问sqlite数据的助手类 ?* 创建了一个note记录表?* ?* _id,???? 主键?* title,? 标题???? ?* content,内容??? }?* @version???? 1.0?* @since?????? 2011\9\21?* @see???????? 欢迎对android感兴趣的童鞋加入android技术帮,共同学习,共同进步!?* ****/public class DataBaseHelper extends SQLiteOpenHelper {??public DataBaseHelper(Context context, String name, CursorFactory factory,???int version) {??super(context, name, factory, version);??// TODO Auto-generated constructor stub?}?public DataBaseHelper(Context context, String name,? ???int version) {??this(context, name, null, version);??// TODO Auto-generated constructor stub?}?public DataBaseHelper(Context context, String name) {??this(context, name, Config.VERSION);??// TODO Auto-generated constructor stub?}? ?@Override?public void onCreate(SQLiteDatabase db) {??// TODO Auto-generated method stub??????? System.out.println(" create table --> ");??// 执行创建??????? db.execSQL("create table "+ Config.TABLE_NAME +??????? ???? "(_id INTEGER DEFAULT '1' NOT NULL PRIMARY KEY AUTOINCREMENT," +??????? ???? "title varchar(100)," +??????? ???? "content text)");???}

?@Override?public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {??// TODO Auto-generated method stub??????? System.out.println(" up grade datebase --> ");??????? db.execSQL("drop table " + Config.TABLE_NAME);??????? db.execSQL("create table "+ Config.TABLE_NAME +???? ??????? "(_id INTEGER DEFAULT '1' NOT NULL PRIMARY KEY AUTOINCREMENT," +???? ??????? "title varchar(100)," +???? ??????? "content text)");???} }