用到gallery的保存自定义联系人

package com.wangs.activity;

import java.util.Stack;

import com.wangs.bean.User;
import com.wangs.dao.DBHelper;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
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.ViewSwitcher.ViewFactory;

public class ContactActivity extends Activity {
    private ImageButton btn_img;
    private AlertDialog imageChooseDialog;
    private int[] images = {
    		R.drawable.icon,
    		R.drawable.i1,R.drawable.i2,
    		R.drawable.i3,R.drawable.i4,
    		R.drawable.i5,R.drawable.i6,
    		R.drawable.i7,R.drawable.i2,
    		R.drawable.i9,R.drawable.i10,
    		R.drawable.i11,R.drawable.i12,
    };
    ImageSwitcher is;
    Gallery gallery;
    private int imagePosition ;//定义来接收imageid
    
    //初始化联系人内容
    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 btv_return;
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.addnew);
        initWidget(); //初始化信息
        btn_img = (ImageButton) this.findViewById(R.id.btn_img);
        btn_img.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				initImageChooseDialog(); //初始化alertDialog
				imageChooseDialog.show();
			}
        });
        btn_save.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				String name = et_name.getText().toString();
				if(name.equals("")){
					Toast.makeText(ContactActivity.this, "姓名不能为空", 2).show();
					return;
				}
			    String mobilePhone=  et_mobilePhone.getText().toString();
			    String familyPhone =  et_familyPhone.getText().toString();
			    String officePhone =  et_officePhone.getText().toString();
			    String position = et_position.getText().toString();
			    String company =  et_company.getText().toString();
			    String address =  et_address.getText().toString();
			    String zipcode =  et_zipcode.getText().toString();
			    String email =  et_email.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.name = name;
			    user.officePhone = officePhone;
			    user.otherContact = otherContact;
			    user.position = position;
			    user.remark = remark;
			    user.zipCode = zipcode;
			    
			    //save user to database;
			   long success =  DBHelper.getInstance(ContactActivity.this).saveUser(user);
			   if(success != -1){
				   Toast.makeText(ContactActivity.this, "保存成功!!", 2).show();
				   //setReCode为1的时候代表增加成功,返回主界面
				   setResult(1);
				   finish() ;//  才跳转
			   }else{
				   Toast.makeText(ContactActivity.this, "保存有误,请重新操作!!!", 2).show();
				   setResult(2);
				    finish();
			   }
			}
        });
        btv_return.setOnClickListener(new OnClickListener(){ 
			@Override
			public void onClick(View arg0) {
				 setResult(2);
				 finish();
			}
        });
    }
	public void initWidget(){
		et_name = (EditText) this.findViewById(R.id.et_name);
		et_officePhone = (EditText) this.findViewById(R.id.et_officePhone);
		et_mobilePhone = (EditText) this.findViewById(R.id.et_mobilePhone);
		et_familyPhone = (EditText) this.findViewById(R.id.et_familyPhone);
		et_company = (EditText) this.findViewById(R.id.et_company);
		et_address = (EditText) this.findViewById(R.id.et_address);
		et_email = (EditText) this.findViewById(R.id.et_email);
		et_position = (EditText) this.findViewById(R.id.et_position);
		et_zipcode = (EditText) this.findViewById(R.id.et_zipcode);
		et_remark = (EditText) this.findViewById(R.id.et_remark);
		et_otherContact = (EditText) this.findViewById(R.id.et_other);
		
		btn_save = (Button)this.findViewById(R.id.btn_save);
		btv_return = (Button)this.findViewById(R.id.btn_return);
	}
	private void initImageChooseDialog() {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("请选择头像");  
		//创建2个按钮
		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) {
				
			}
		});
		//把imageswitch这个文件渲染成view
		LayoutInflater inflater = LayoutInflater.from(this);
		View view = inflater.inflate(R.layout.imageswitch, null);
		//取出view里的gallery和imageswitch
		gallery = (Gallery) view.findViewById(R.id.img_gallery);
		is = (ImageSwitcher) view.findViewById(R.id.image_switcher);
		gallery.setAdapter(new ImageAdapter(this));
		gallery.setSelection(images.length/2); //定位到中间
		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<?> arg0) {
				// TODO Auto-generated method stub
			}
		});
		is.setFactory(new MyViwFactory(this));   //生成一个iv
		is.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				btn_img.setImageResource(images[imagePosition%images.length]);  //ImageSwitcher选中设置ImageButton的图像
			}
		});
		builder.setView(view);
		imageChooseDialog = builder.create(); //创建它
	}
	class ImageAdapter extends BaseAdapter{

		private Context context;
		private ImageAdapter(Context context){
			this.context = context;
		}
		@Override
		public int getCount() {
			//images.length
			return Integer.MAX_VALUE;   //产生无限循环
		}

		@Override
		public Object getItem(int position) {
			return null;
		}

		@Override
		public long getItemId(int position) {
			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));  //设置imageview大小
			iv.setPadding(15,10,15,10); //设置图片左上右下间隔
			return iv;
		}
	}
	class MyViwFactory implements ViewFactory{
		private Context context;
		private MyViwFactory(Context context){
			this.context = context;
		}
		@Override
		public View makeView() {   
			ImageView iv = new ImageView(context);
			iv.setLayoutParams(new ImageSwitcher.LayoutParams(90,90));
			return iv;
		}
	}
	

}



----绑定菜单

package com.wangs.activity;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import com.wangs.bean.User;
import com.wangs.dao.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.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {
	
	private GridView gv_buttom_menu;
	private ListView lv_userList;
    private SimpleAdapter useradapter ;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.main);
		 loadUserList();
		 
	}
	
	public void loadUserList(){
		lv_userList = (ListView) this.findViewById(R.id.lv_userlist);
		ArrayList data = DBHelper.getInstance(this).getUserList();
		useradapter = 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_showmobile});
		lv_userList.setAdapter(useradapter); 
		
	}
	
	@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.backgound);
		gv_buttom_menu.setNumColumns(5);
		gv_buttom_menu.setGravity(Gravity.CENTER);
		gv_buttom_menu.setVerticalSpacing(4);  //水平间隔
		ArrayList data = new ArrayList();
		Map map = new HashMap();
		map.put("itemImage", R.drawable.save);
		map.put("itemText", "增加");
		data.add(map);
		
		map = new HashMap();
		map.put("itemImage", R.drawable.motify);
		map.put("itemText", "查找");
		data.add(map);
		
		map = new HashMap();
		map.put("itemImage", R.drawable.laji);
		map.put("itemText", "删除");
		data.add(map);
		
		map = new HashMap();
		map.put("itemImage", R.drawable.me);
		map.put("itemText", "菜单");
		data.add(map);
		
		map = new HashMap();
		map.put("itemImage", R.drawable.motify2);
		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,ContactActivity.class);
					startActivityForResult(intent, 0);  //设置0代表增加操作
					break;
				case 1:
					break;
				case 2:
					break;
				case 3:
					break;
				case 4:
					break;

				default:
					break;
				}
			}
		});
	}
	
	//判断回调的recode代码
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if(requestCode ==0){
			if(resultCode ==1){  //代表保存成功,刷新主界面
				ArrayList data2 = DBHelper.getInstance(this).getUserList();
				useradapter = new SimpleAdapter(this, data2, 
						R.layout.list_item,
						new String[]{"imageid","name","mobilephone"}, 
						new int[]{R.id.user_image,R.id.tv_showname,R.id.tv_showmobile});
				lv_userList.setAdapter(useradapter); 
			}else{ //resultCode = 2
				
			}
		}
		
		super.onActivityResult(requestCode, resultCode, data);
	}
}


---- 数据库

package com.wangs.dao;

import java.util.ArrayList;
import java.util.HashMap;

import com.wangs.bean.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 static final String DB_NAME= "contact";
	public static final int VERSION = 3;

	//单例
	private static DBHelper instance = null;
	
	private SQLiteDatabase db;  //主要是让它初始化
	public static DBHelper getInstance(Context context){
		if(instance == null){
			instance = new DBHelper(context);
		}
		return instance;
	}
	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("address text,")
					.append("position text,")
					.append("company text,")
					.append("email text,")
					.append("zipcode text,")
					.append("remark text,")
					.append("othercontact 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);
	}
	
	//db
	private void openDatabase(){
		if(db ==null){
			//查系统,没有就调用onCreate方法,第二次就不会调用了
			db = this.getWritableDatabase();
		}
	}
	public long saveUser(User user){
		openDatabase();  //打开.SQLiteDatabase
		ContentValues cv = new ContentValues();  //相当与hashmap
		cv.put("name", user.name);
		cv.put("address", user.address);
		cv.put("company", user.company);
		cv.put("email", user.email);
		cv.put("familyphone", user.familyphone);
		cv.put("mobilephone", user.mobilePhone);
		cv.put("officephone", user.officePhone);
		cv.put("othercontact", user.otherContact);
		cv.put("position", user.position);
		cv.put("remark", user.remark);
		cv.put("zipcode", user.zipCode);
		cv.put("imageid", user.imageId);
		return db.insert("user", null, cv);  //保存到数据库
	}
	public ArrayList getUserList() {
		openDatabase();  //打开.SQLiteDatabase
		Cursor cursor = db.query("user", null, null, null, null, null, null);
		ArrayList list = new ArrayList();
		while(cursor.moveToNext()){
			HashMap map = new HashMap();
			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;
	}

}




你可能感兴趣的:(ListView,String,HashMap,user,null,email)