package test.contact;
import java.util.ArrayList;
import java.util.HashMap;
import test.contact.db.DBHelper;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity {
GridView gv_buttom_menu;
ListView lv_userList;
SimpleAdapter adapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
loadUserList();
}
private void loadUserList() {
lv_userList = (ListView) this.findViewById(R.id.lv_userlist);
ArrayList data = DBHelper.getInstance(this).getUserList();
adapter = new SimpleAdapter(this,
data,
R.layout.list_item,
new String[]{"imageid","name","mobilephone"},
new int[]{R.id.user_image,R.id.tv_showname,R.id.tv_showmobilephone});
lv_userList.setAdapter(adapter);
lv_userList.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
HashMap map = (HashMap)parent.getItemAtPosition(position);
Intent intent = new Intent(MainActivity.this,DetailActivity.class);
intent.putExtra("usermap", map);
//当requestCode为3的时候代表请求转向DetailActivity这个页面
startActivityForResult(intent, 3);
}});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_MENU) {
if(gv_buttom_menu == null) {
loadButtomMenu();
}
if(gv_buttom_menu.getVisibility()==View.GONE) {
gv_buttom_menu.setVisibility(View.VISIBLE);
} else {
gv_buttom_menu.setVisibility(View.GONE);
}
}
return super.onKeyDown(keyCode, event);
}
private void loadButtomMenu() {
gv_buttom_menu = (GridView) this.findViewById(R.id.gv_buttom_menu);
gv_buttom_menu.setBackgroundResource(R.drawable.channelgallery_bg);
gv_buttom_menu.setNumColumns(5);
gv_buttom_menu.setGravity(Gravity.CENTER);
gv_buttom_menu.setVerticalSpacing(10);
gv_buttom_menu.setHorizontalSpacing(10);
ArrayList data = new ArrayList();
HashMap map = new HashMap();
map.put("itemImage", R.drawable.menu_new_user);
map.put("itemText","增加");
data.add(map);
map = new HashMap();
map.put("itemImage", R.drawable.menu_search);
map.put("itemText","查找");
data.add(map);
map = new HashMap();
map.put("itemImage", R.drawable.menu_delete);
map.put("itemText","删除");
data.add(map);
map = new HashMap();
map.put("itemImage", R.drawable.controlbar_showtype_list);
map.put("itemText","菜单");
data.add(map);
map = new HashMap();
map.put("itemImage", R.drawable.menu_exit);
map.put("itemText","退出");
data.add(map);
SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item_menu,new String[]{"itemImage","itemText"},new int[]{R.id.item_image,R.id.item_text});
gv_buttom_menu.setAdapter(adapter);
gv_buttom_menu.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//HashMap map = (HashMap)parent.getItemAtPosition(1);
switch(position) {
case 0: {
Intent intent = new Intent(MainActivity.this,AddNewActivity.class);
//0代表的是请求调转到添加界面
startActivityForResult(intent, 0);
break;
}
case 1: {
break;
}
case 2: {
break;
}
case 3: {
break;
}
case 4: {
break;
}
}
}});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==0) {
if(resultCode == 1) {
//增加用户成功 进行刷新
ArrayList userData = DBHelper.getInstance(this).getUserList();
adapter = new SimpleAdapter(this,
userData,
R.layout.list_item,
new String[]{"imageid","name","mobilephone"},
new int[]{R.id.user_image,R.id.tv_showname,R.id.tv_showmobilephone});
lv_userList.setAdapter(adapter);
} else if(resultCode == 2) {
//增加用户失败 不 进行刷新
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}
package test.contact;
import java.util.HashMap;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
public class DetailActivity extends Activity {
EditText et_name;
EditText et_mobilePhone;
EditText et_familyPhone;
EditText et_officePhone;
EditText et_position;
EditText et_company;
EditText et_address;
EditText et_zipCode;
EditText et_email;
EditText et_otherContact;
EditText et_remark;
ImageButton btn_img;
HashMap map;
Button btn_modify;
Button btn_delete;
Button btn_return;
boolean flag = false;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail);
initWidget();
setEditTextDisable();
Intent intent = getIntent();
map = (HashMap)intent.getSerializableExtra("usermap");
displayData();
btn_modify.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setEditTextAble();
if(flag) {
flag = false;
btn_modify.setText("修改");
setEditTextDisable();
} else {
flag = true;
btn_modify.setText("保存");
setEditTextAble();
}
}
});
}
public void initWidget() {
et_name = (EditText) this.findViewById(R.id.et_name);
et_mobilePhone = (EditText) this.findViewById(R.id.et_mobilephone);
et_familyPhone = (EditText) this.findViewById(R.id.et_familyphone);
et_officePhone = (EditText) this.findViewById(R.id.et_officephone);
et_position = (EditText) this.findViewById(R.id.et_position);
et_company = (EditText) this.findViewById(R.id.et_company);
et_address = (EditText) this.findViewById(R.id.et_address);
et_zipCode = (EditText) this.findViewById(R.id.et_zipcode);
et_email = (EditText) this.findViewById(R.id.et_email);
et_otherContact = (EditText) this.findViewById(R.id.et_other);
et_remark = (EditText) this.findViewById(R.id.et_remark);
btn_img = (ImageButton) this.findViewById(R.id.btn_img);
btn_modify = (Button) this.findViewById(R.id.btn_modify);
btn_delete = (Button) this.findViewById(R.id.btn_delete);
btn_return = (Button)this.findViewById(R.id.btn_return);
}
private void setEditTextDisable() {
et_name.setEnabled(false);
et_mobilePhone.setEnabled(false);
et_familyPhone.setEnabled(false);
et_officePhone.setEnabled(false);
et_position.setEnabled(false);
et_company.setEnabled(false);
et_address.setEnabled(false);
et_zipCode.setEnabled(false);
et_email.setEnabled(false);
et_otherContact.setEnabled(false);
et_remark.setEnabled(false);
btn_img.setEnabled(false);
}
private void setEditTextAble() {
et_name.setEnabled(true);
et_mobilePhone.setEnabled(true);
et_familyPhone.setEnabled(true);
et_officePhone.setEnabled(true);
et_position.setEnabled(true);
et_company.setEnabled(true);
et_address.setEnabled(true);
et_zipCode.setEnabled(true);
et_email.setEnabled(true);
et_otherContact.setEnabled(true);
et_remark.setEnabled(true);
btn_img.setEnabled(true);
}
private void displayData() {
et_name.setText(String.valueOf(map.get("name")));
et_mobilePhone.setText(String.valueOf(map.get("mobilephone")));
et_familyPhone.setText(String.valueOf(map.get("familyphone")));
et_officePhone.setText(String.valueOf(map.get("officephone")));
et_position.setText(String.valueOf(map.get("position")));
et_company.setText(String.valueOf(map.get("company")));
et_address.setText(String.valueOf(map.get("address")));
et_zipCode.setText(String.valueOf(map.get("zipcode")));
et_email.setText(String.valueOf(map.get("email")));
et_otherContact.setText(String.valueOf(map.get("othercontact")));
et_remark.setText(String.valueOf(map.get("remark")));
btn_img.setImageResource(Integer.parseInt(String.valueOf(map.get("imageid"))));
}
}
package test.contact;
import test.contact.db.DBHelper;
import test.contact.entity.User;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Gallery;
import android.widget.ImageButton;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ViewSwitcher.ViewFactory;
public class AddNewActivity extends Activity {
ImageButton btn_img;
AlertDialog imageChooseDialog;
Gallery gallery;
ImageSwitcher is;
int imagePosition;
EditText et_name;
EditText et_mobilePhone;
EditText et_familyPhone;
EditText et_officePhone;
EditText et_position;
EditText et_company;
EditText et_address;
EditText et_zipCode;
EditText et_email;
EditText et_otherContact;
EditText et_remark;
Button btn_save;
Button btn_return;
private int[] images = {
R.drawable.icon,R.drawable.image1,R.drawable.image2,
R.drawable.image3,R.drawable.image4,
R.drawable.image5,R.drawable.image6,
R.drawable.image7,R.drawable.image8,
R.drawable.image9,R.drawable.image10,
R.drawable.image11,R.drawable.image12,
R.drawable.image13,R.drawable.image14,
R.drawable.image15,R.drawable.image16,
R.drawable.image17,R.drawable.image18,
R.drawable.image19,R.drawable.image20,
R.drawable.image21,R.drawable.image22,
R.drawable.image23,R.drawable.image24,
R.drawable.image25,R.drawable.image26,
R.drawable.image27,R.drawable.image28,
R.drawable.image29,R.drawable.image30};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.addnew);
initWidget();
btn_save.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String name = et_name.getText().toString();
if(name.equals("")) {
Toast.makeText(AddNewActivity.this, "姓名无能为空", Toast.LENGTH_LONG).show();
return;
}
String mobilePhone = et_mobilePhone.getText().toString();
String officePhone = et_officePhone.getText().toString();
String familyPhone = et_familyPhone.getText().toString();
String position = et_position.getText().toString();
String company = et_company.getText().toString();
String address = et_address.getText().toString();
String email = et_email.getText().toString();
String zipCode = et_zipCode.getText().toString();
String otherContact = et_otherContact.getText().toString();
String remark = et_remark.getText().toString();
int imageId = images[imagePosition];
User user = new User();
user.address = address;
user.company = company;
user.email = email;
user.familyPhone = familyPhone;
user.imageId = imageId;
user.mobilePhone = mobilePhone;
user.officePhone = officePhone;
user.name = name;
user.otherContact = otherContact;
user.position = position;
user.remark = remark;
user.zipCode = zipCode;
//save user to database
long success = DBHelper.getInstance(AddNewActivity.this).save(user);
if(success != -1) {
Toast.makeText(AddNewActivity.this, "添加成功!", Toast.LENGTH_LONG).show();
//resultCode为1的时候代表增加用户成功,返回到主页面
setResult(1);
finish();
} else {
Toast.makeText(AddNewActivity.this, "添加失败,请重新操作!", Toast.LENGTH_LONG).show();
//resultCode为2的时候代表增加用户失败,返回到主页面
setResult(2);
finish();
}
}});
btn_img = (ImageButton) this.findViewById(R.id.btn_img);
btn_img.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
initImageChooseDialog();
imageChooseDialog.show();
}});
btn_return.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
setResult(2);
finish();
}});
}
public void initWidget() {
et_name = (EditText) this.findViewById(R.id.et_name);
et_mobilePhone = (EditText) this.findViewById(R.id.et_mobilephone);
et_familyPhone = (EditText) this.findViewById(R.id.et_familyphone);
et_officePhone = (EditText) this.findViewById(R.id.et_officephone);
et_position = (EditText) this.findViewById(R.id.et_position);
et_company = (EditText) this.findViewById(R.id.et_company);
et_address = (EditText) this.findViewById(R.id.et_address);
et_zipCode = (EditText) this.findViewById(R.id.et_zipcode);
et_email = (EditText) this.findViewById(R.id.et_email);
et_otherContact = (EditText) this.findViewById(R.id.et_other);
et_remark = (EditText) this.findViewById(R.id.et_remark);
btn_save = (Button) this.findViewById(R.id.btn_save);
btn_return = (Button) this.findViewById(R.id.btn_return);
}
private void initImageChooseDialog(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请选择图像");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
btn_img.setImageResource(images[imagePosition%images.length]);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.imageswitch, null);
gallery = (Gallery) view.findViewById(R.id.img_gallery);
gallery.setAdapter(new ImageAdapter(this));
gallery.setSelection(images.length/2);
is = (ImageSwitcher) view.findViewById(R.id.image_switcher);
gallery.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
imagePosition = position;
is.setImageResource(images[position%images.length]);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}});
is.setFactory(new MyViewFactory(this));
builder.setView(view);
imageChooseDialog = builder.create();
}
class ImageAdapter extends BaseAdapter {
private Context context;
public ImageAdapter(Context context) {
this.context = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return Integer.MAX_VALUE;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView iv = new ImageView(context);
iv.setImageResource(images[position%images.length]);
iv.setAdjustViewBounds(true);
iv.setLayoutParams(new Gallery.LayoutParams(80, 80));
iv.setPadding(15, 10, 15, 10);
return iv;
}
}
class MyViewFactory implements ViewFactory {
private Context context;
public MyViewFactory(Context context) {
this.context = context;
}
@Override
public View makeView() {
ImageView iv = new ImageView(context);
iv.setLayoutParams(new ImageSwitcher.LayoutParams(90,90));
return iv;
}
}
}
package test.contact.entity;
public class User {
public int _id;
public int imageId;
public String name;
public String mobilePhone;
public String officePhone;
public String familyPhone;
public String position;
public String company;
public String address;
public String zipCode;
public String email;
public String otherContact;
public String remark;
}
package test.contact.db;
import java.util.ArrayList;
import java.util.HashMap;
import test.contact.entity.User;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
public final static String DB_NAME="contact";
public final static int VERSION = 2;
private static DBHelper instance = null;
private SQLiteDatabase db;
public static DBHelper getInstance(Context context) {
if(instance == null) {
instance = new DBHelper(context);
}
return instance;
}
private void openDatabase() {
if(db == null) {
db = this.getWritableDatabase();
}
}
private DBHelper(Context context) {
super(context, DB_NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
StringBuffer tableCreate = new StringBuffer();
tableCreate.append("create table user ( _id integer primary key autoincrement,")
.append("name text,")
.append("mobilephone text,")
.append("familyphone text,")
.append("officephone text,")
.append("position text,")
.append("company text,")
.append("address text,")
.append("email text,")
.append("othercontact text,")
.append("zipcode text,")
.append("remark text,")
.append("imageid int )");
db.execSQL(tableCreate.toString());
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "drop table if exists user";
db.execSQL(sql);
onCreate(db);
}
public long save(User user) {
openDatabase();
ContentValues value = new ContentValues();
value.put("name", user.name);
value.put("mobilephone", user.mobilePhone);
value.put("familyphone", user.familyPhone);
value.put("officephone", user.officePhone);
value.put("position", user.position);
value.put("company", user.company);
value.put("address", user.address);
value.put("email", user.email);
value.put("othercontact", user.otherContact);
value.put("zipcode", user.zipCode);
value.put("remark", user.remark);
value.put("imageid", user.imageId);
return db.insert("user", null, value);
}
public ArrayList getUserList() {
openDatabase();
Cursor cursor = db.query("user", null, null, null, null, null, null);
ArrayList list = new ArrayList();
while(cursor.moveToNext()) {
HashMap map = new HashMap();
map.put("_id", cursor.getInt(cursor.getColumnIndex("_id")));
map.put("familyphone", cursor.getString(cursor.getColumnIndex("familyphone")));
map.put("officephone", cursor.getString(cursor.getColumnIndex("officephone")));
map.put("position", cursor.getString(cursor.getColumnIndex("position")));
map.put("company", cursor.getString(cursor.getColumnIndex("company")));
map.put("address", cursor.getString(cursor.getColumnIndex("address")));
map.put("email", cursor.getString(cursor.getColumnIndex("email")));
map.put("othercontact", cursor.getString(cursor.getColumnIndex("othercontact")));
map.put("zipcode", cursor.getString(cursor.getColumnIndex("zipcode")));
map.put("remark", cursor.getString(cursor.getColumnIndex("remark")));
map.put("imageid", cursor.getInt(cursor.getColumnIndex("imageid")));
map.put("name", cursor.getString(cursor.getColumnIndex("name")));
map.put("mobilephone", cursor.getString(cursor.getColumnIndex("mobilephone")));
list.add(map);
}
return list;
}
}