一个简单的通讯录(数据库是引用其他项目的)第一次在csdn上写
来源:互联网 发布:mysql 最近7天组查询 编辑:程序博客网 时间:2024/05/16 07:39
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="yy.Contacts"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".ContactsActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".List">
</activity>
<activity android:name=".List2">
</activity>
</application>
</manifest>
package yy.Contacts;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class BooksDB extends SQLiteOpenHelper {
private final static String DATABASE_NAME = "BOOKS.db";
private final static int DATABASE_VERSION = 1;
private final static String TABLE_NAME = "books_table";
public final static String BOOK_ID = "book_id";
public final static String BOOK_NAME = "book_name";
public final static String BOOK_AUTHOR = "book_author";
public BooksDB(Context context) {
// TODO Auto-generated constructor stub
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
//创建table
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE " + TABLE_NAME + " (" + BOOK_ID
+ " INTEGER primary key autoincrement, " + BOOK_NAME + " text, "+ BOOK_AUTHOR +" text);";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
db.execSQL(sql);
onCreate(db);
}
public Cursor select() {
SQLiteDatabase db = this.getReadableDatabase();
//String[] name={BOOK_NAME} ;
Cursor cursor = db
.query(TABLE_NAME, null, null, null, null, null, null);
return cursor;
}
//增加操作
public long insert(String bookname,String author)
{
SQLiteDatabase db = this.getWritableDatabase();
/* ContentValues */
ContentValues cv = new ContentValues();
cv.put(BOOK_NAME, bookname);
cv.put(BOOK_AUTHOR, author);
long row = db.insert(TABLE_NAME, null, cv);
return row;
}
//删除操作
public void delete(int id)
{
SQLiteDatabase db = this.getWritableDatabase();
String where = BOOK_ID + " = ?";
String[] whereValue ={ Integer.toString(id) };
db.delete(TABLE_NAME, where, whereValue);
}
//修改操作
public void update(int id, String bookname,String author)
{
SQLiteDatabase db = this.getWritableDatabase();
String where = BOOK_ID + " = ?";
String[] whereValue = { Integer.toString(id) };
ContentValues cv = new ContentValues();
cv.put(BOOK_NAME, bookname);
cv.put(BOOK_AUTHOR, author);
db.update(TABLE_NAME, cv, where, whereValue);
}
public void selectTWO(String name) {
// TODO Auto-generated method stub
}
}
package yy.Contacts;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class ContactsActivity extends Activity{
private BooksDB mBooksDB;
private Cursor mCursor;
private EditText BookName;
private EditText BookAuthor;
//private ListView BooksList;
private int BOOK_ID = 0;
protected final static int MENU_ADD = Menu.FIRST;
protected final static int MENU_DELETE = Menu.FIRST + 1;
protected final static int MENU_UPDATE = Menu.FIRST + 2;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setUpViews();
Button button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent=new Intent();
intent.setClass(ContactsActivity.this, List.class);
ContactsActivity.this.startActivity(intent);
}
});
}
public void setUpViews(){
mBooksDB = new BooksDB(this);
BookName = (EditText)findViewById(R.id.bookname);
BookAuthor = (EditText)findViewById(R.id.author);
//BooksList = (ListView)findViewById(R.id.bookslist);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(Menu.NONE, MENU_ADD, 0, "ADD");
menu.add(Menu.NONE, MENU_DELETE, 0, "DELETE");
menu.add(Menu.NONE, MENU_DELETE, 0, "UPDATE");
return true;
}
public boolean onOptionsItemSelected(MenuItem item)
{
super.onOptionsItemSelected(item);
switch (item.getItemId())
{
case MENU_ADD:
add();
break;
case MENU_DELETE:
delete();
break;
case MENU_UPDATE:
update();
break;
}
return true;
}
public void add(){
String bookname = BookName.getText().toString();
String author = BookAuthor.getText().toString();
//书名和作者都不能为空,或者退出
if (bookname.equals("") || author.equals("")){
return;
}
mBooksDB.insert(bookname, author);
BookName.setText("");
BookAuthor.setText("");
Toast.makeText(this, "Add Successed!", Toast.LENGTH_SHORT).show();
}
public void delete(){
if (BOOK_ID == 0) {
return;
}
mBooksDB.delete(BOOK_ID);
//mCursor.requery();
//BooksList.invalidateViews();
BookName.setText("");
BookAuthor.setText("");
Toast.makeText(this, "Delete Successed!", Toast.LENGTH_SHORT).show();
}
public void update(){
String bookname = BookName.getText().toString();
String author = BookAuthor.getText().toString();
//书名和作者都不能为空,或者退出
if (bookname.equals("") || author.equals("")){
return;
}
mBooksDB.update(BOOK_ID, bookname, author);
//mCursor.requery();
//BooksList.invalidateViews();
BookName.setText("");
BookAuthor.setText("");
Toast.makeText(this, "Update Successed!", Toast.LENGTH_SHORT).show();
}
}
package yy.Contacts;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class List extends Activity {
private BooksDB mBooksDB;
private Cursor mCursor;
private ListView BooksList;
protected final static int MENU = Menu.FIRST;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
mBooksDB = new BooksDB(this);
mCursor = mBooksDB.select();
BooksList = (ListView)findViewById(R.id.bookslist);
BooksList.setAdapter(new BooksListAdapter(this, mCursor));
Log.i("-------------->", "运行1");
BooksList.setOnItemClickListener(new ListeListener());
Log.i("-------------->", "运行2");
}
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(Menu.NONE, MENU, 0, "详情");
return true;
}
public boolean onOptionsItemSelected(MenuItem item)
{
super.onOptionsItemSelected(item);
switch (item.getItemId())
{
case MENU:
Intent intent=new Intent();
intent.setClass(List.this, List2.class);
//intent.putExtra("id",id);
List.this.startActivity(intent);
break;
}
return true;
}
public class BooksListAdapter extends BaseAdapter{
private Context mContext;
private Cursor mCursor;
public BooksListAdapter(Context context,Cursor cursor) {
mContext = context;
mCursor = cursor;
}
@Override
public int getCount() {
return mCursor.getCount();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView mTextView = new TextView(mContext);
mCursor.moveToPosition(position);
mTextView.setText(mCursor.getString(1));
return mTextView;
}
}
class ListeListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.putExtra("ID", arg2);
Log.i("------>", ""+arg2);
intent.setClass(List.this, List2.class);
startActivity(intent);
}
}
}
package yy.Contacts;
import android.R.integer;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class List2 extends Activity {
private BooksDB mBooksDB;
private Cursor mCursor;
private ListView BooksList;
private int BOOK_ID = 0;
protected final static int MENU = Menu.FIRST;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
mBooksDB = new BooksDB(this);
mCursor = mBooksDB.select();
BooksList = (ListView)findViewById(R.id.bookslist);
BooksList.setAdapter(new BooksListAdapter(this, mCursor));
BooksList.setOnItemClickListener(new CallListener());
}
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(Menu.NONE, MENU, 0, "详情");
return true;
}
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mCursor.moveToPosition(position);
BOOK_ID = mCursor.getInt(0);
}
public class BooksListAdapter extends BaseAdapter{
private Context mContext;
private Cursor mCursor;
public BooksListAdapter(Context context,Cursor cursor) {
mContext = context;
mCursor = cursor;
}
@Override
public int getCount() {
return 1; //输出一行
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView mTextView = new TextView(mContext);
int a=getIntent().getExtras().getInt("ID");
Log.i("-----------a=", " "+a);
mCursor.moveToPosition(a);
mTextView.setText(mCursor.getString(2));
return mTextView;
}
}
class CallListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String num = ((TextView)arg1).getText().toString();
Log.i("=========", num);
Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+num));
startActivity(intent);
}
}
}
布局文件:
list.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/bookslist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</ListView>
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="详情"
/>
</LinearLayout>
list2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/textView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ListView
android:id="@+id/bookslist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</ListView>
</LinearLayout>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/bookname"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</EditText>
<EditText
android:id="@+id/author"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="查看列表"
/>
</LinearLayout>
- 一个简单的通讯录(数据库是引用其他项目的)第一次在csdn上写
- 在CSDN 写的第一次
- 第一次写CSDN上的Blog
- 【汇编语言】写一个简单的通讯录
- php写一个简单的通讯录
- 在CSDN的第一次写博客
- 一个REST API 在Azure上应用的简单通讯录例子。(C#, MVC)
- 第一次在CSDN的Blog上~
- 虽然用了好几年的CSDN了,却是第一次在这上面写博客
- 转行找工作(C++) --- 第一次在CSDN上写文章
- 第一次在csdn上写文章
- 第一次在CSDN上写文章
- 第一次在CSDN上写东西
- 第一次在CSDN上写BLOG
- 第一次在CSDN上写文章
- 第一次在csdn上写blog
- 第一次在CSDN上写博客
- 第一次在CSDN上写文章
- php中session过期时间设置
- eclipse使用记录
- Uri与String之间的转换
- iPhone与Android的平台对比分析
- C/C++ 的全局变量初始化与不初始化的区别
- 一个简单的通讯录(数据库是引用其他项目的)第一次在csdn上写
- C语言执行Linux的shell命令并获得返回值
- 25-35岁应该吃的食物
- VisualDSP++下uC/OS-II使用DOUBLE64
- 介绍一篇很不错的Objective-C的文章
- Linux如何搜索文件的方法
- 读书收获、心情等 读computer arithmetic algorithms
- 面向海量服务的设计原则和策略总结
- 胡言乱语话USB