android飞信群发助手

很久以前写过的一个程序,主要用到了ListView,ContentProvider,solite数据库和Java网络通信实现了基于第三方API的飞信群发助手,实现了飞信的添加好友,发送飞信和飞信群发功能,可以作为参考,源码我已经上传,下载地址我会放在下面,供大家下载学习。本人小菜一个。。。。欢迎大家拍砖~~~

这是程序的主界面:

主界面源代码,FetionSend.java

package com.huangcheng.mainFrame;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.regex.Pattern;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.huangcheng.FetionAdd.AddPerson;
import com.huangcheng.FetionSend.SendPerson;

public class FetionSend extends Activity {
	/** Called when the activity is first created. */

	// private final boolean state=false;;

	private final int test_fail = 0;
	private final int test_true = 1;

	private Button add, send, quit, save;
	private EditText user, pwd;
	private String username, password;

	private ProgressDialog progressDialog;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		add = (Button) findViewById(R.id.AddPeople);
		send = (Button) findViewById(R.id.SendPeople);
		quit = (Button) findViewById(R.id.Quit);
		save = (Button) findViewById(R.id.SaveUser);
		user = (EditText) findViewById(R.id.feitionnumber);
		pwd = (EditText) findViewById(R.id.feitionpwd);
		SharedPreferences sharedPreferences = getSharedPreferences(
				"Fetion_Send", Context.MODE_PRIVATE);
		username = sharedPreferences.getString("username", "");
		user.setText(username);
		password = sharedPreferences.getString("password", "");
		pwd.setText(password);
		save.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				TestLogin();
			}

		});
		add.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				SharedPreferences sharedPreferences_test = getSharedPreferences(
						"test", Context.MODE_PRIVATE);
				boolean test = sharedPreferences_test.getBoolean("test", false);
				if (user.getText().length() == 0 || pwd.getText().length() == 0
						|| isNumeric(user.getText().toString()) || !test) {
					AlertDialog.Builder builder = new Builder(FetionSend.this);
					builder.setMessage("您飞信用户名或者密码输入有误,确认要添加飞信好友么?");
					builder.setTitle("提示");
					builder.setPositiveButton("确认",
							new DialogInterface.OnClickListener() {

								@Override
								public void onClick(DialogInterface dialog,
										int arg1) {
									// TODO Auto-generated method stub
									dialog.dismiss();
									Intent intent = new Intent();
									intent.setClass(FetionSend.this,
											AddPerson.class);
									startActivity(intent);
								}
							});
					builder.setNegativeButton("取消",
							new DialogInterface.OnClickListener() {
								@Override
								public void onClick(DialogInterface dialog,
										int arg1) {
									// TODO Auto-generated method stub
									dialog.dismiss();
								}
							});
					builder.create().show();
				} else {
					Intent intent = new Intent();
					intent.setClass(FetionSend.this, AddPerson.class);
					startActivity(intent);
				}
			}
		});
		send.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				SharedPreferences sharedPreferences_test = getSharedPreferences(
						"test", Context.MODE_PRIVATE);
				boolean test = sharedPreferences_test.getBoolean("test", false);
				if (user.getText().length() == 0 || pwd.getText().length() == 0
						|| isNumeric(user.getText().toString()) || !test) {
					AlertDialog.Builder builder = new Builder(FetionSend.this);
					builder.setMessage("您飞信用户名或者密码输入有误,确认要发送飞信么?");
					builder.setTitle("提示");
					builder.setPositiveButton("确认",
							new DialogInterface.OnClickListener() {

								@Override
								public void onClick(DialogInterface dialog,
										int arg1) {
									// TODO Auto-generated method stub
									dialog.dismiss();
									Intent intent = new Intent();
									intent.setClass(FetionSend.this,
											SendPerson.class);
									startActivity(intent);
								}
							});
					builder.setNegativeButton("取消",
							new DialogInterface.OnClickListener() {
								@Override
								public void onClick(DialogInterface dialog,
										int arg1) {
									// TODO Auto-generated method stub
									dialog.dismiss();
								}
							});
					builder.create().show();
				} else {
					Intent intent = new Intent();
					intent.setClass(FetionSend.this, SendPerson.class);
					startActivity(intent);
				}
			}
		});
		quit.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				AlertDialog.Builder builder = new Builder(FetionSend.this);
				builder.setMessage("确认退出吗?");
				builder.setTitle("提示");
				builder.setPositiveButton("确认",
						new DialogInterface.OnClickListener() {

							@Override
							public void onClick(DialogInterface dialog, int arg1) {
								// TODO Auto-generated method stub
								dialog.dismiss();
								FetionSend.this.finish();
								System.exit(0);
							}
						});
				builder.setNegativeButton("取消",
						new DialogInterface.OnClickListener() {
							@Override
							public void onClick(DialogInterface dialog, int arg1) {
								// TODO Auto-generated method stub
								dialog.dismiss();
							}
						});
				builder.create().show();
			}
		});
	}

	// @Override
	// protected void onStop() {
	// // TODO Auto-generated method stub
	// super.onStop();
	// SharedPreferences
	// sharedPreferences_save=getSharedPreferences("Fetion_Send",Context.MODE_PRIVATE);
	// Editor editor=sharedPreferences_save.edit();
	// editor.putString("username",user.getText().toString());
	// editor.putString("password",pwd.getText().toString());
	// }
	private final Handler handler = new Handler() {
		public void handleMessage(Message msg) {
			super.handleMessage(msg);
			switch (msg.what) {
			case test_fail:
				// 添加失败
				progressDialog.dismiss();
				Toast.makeText(FetionSend.this, "存储飞信号和密码失败,飞信号或密码错误,请重试!",
						Toast.LENGTH_LONG).show();
				break;
			case test_true:
				// 添加失败
				progressDialog.dismiss();
				Toast.makeText(FetionSend.this, "存储飞信号和密码成功", Toast.LENGTH_LONG)
						.show();
				break;
			}
		};
	};

	public static boolean isNumeric(String str) {
		Pattern pattern = Pattern.compile("[0-9]*");
		return !pattern.matcher(str).matches();
	}

	public void TestLogin() {
		progressDialog = ProgressDialog.show(FetionSend.this, "联网中...",
				"请稍等,正在验证飞信号和密码...");
		SharedPreferences sharedPreferences_save = getSharedPreferences(
				"Fetion_Send", Context.MODE_PRIVATE);
		Editor editor_save = sharedPreferences_save.edit();
		editor_save.putString("username", user.getText().toString());
		editor_save.putString("password", pwd.getText().toString());
		editor_save.commit();
		username = sharedPreferences_save.getString("username", "");
		password = sharedPreferences_save.getString("password", "");
		Runnable r = new Runnable() {

			@Override
			public void run() {
				// TODO Auto-generated method stub
				try {
					String resultData = "";
					String httpurl = "http://lab.3haku.net/f/do?phone="
							+ username + "&pwd=" + password + "&add="
							+ username;
					URL url = new URL(httpurl);
					// 使用HttpURLConnection打开连接
					HttpURLConnection urlConn = (HttpURLConnection) url
							.openConnection();
					// 得到读取的内容(流)
					InputStreamReader in = new InputStreamReader(
							urlConn.getInputStream());
					// 为输出创建BufferedReader
					BufferedReader buffer = new BufferedReader(in);
					String inputLine = null;
					// 使用循环来读取获得的数据
					while (((inputLine = buffer.readLine()) != null)) {
						// 我们在每一行后面加上一个"\n"来换行
						resultData += inputLine + "\n";
					}
					// 关闭InputStreamReader
					in.close();
					// 关闭http连接
					urlConn.disconnect();
					System.out.println(resultData.substring(86, 93));
					System.out.println(resultData);
					if (resultData.substring(86, 93).equals("success")) {
						SharedPreferences sharedPreferences_test = getSharedPreferences(
								"test", Context.MODE_PRIVATE);
						Editor editor = sharedPreferences_test.edit();
						editor.putBoolean("test", true);
						editor.commit();
						Message msg = handler.obtainMessage();
						msg.what = test_true;
						handler.sendMessage(msg);
						SharedPreferences sharedPreferences_save = getSharedPreferences(
								"Fetion_Send", Context.MODE_PRIVATE);
						Editor editor_save = sharedPreferences_save.edit();
						editor_save.putString("username", user.getText()
								.toString());
						editor_save.putString("password", pwd.getText()
								.toString());
						editor_save.commit();

					} else {
						// SharedPreferences
						// sharedPreferences_test=getSharedPreferences("test",Context.MODE_PRIVATE);
						// Editor editor=sharedPreferences_test.edit();
						// editor.putBoolean("test", false);
						// editor.commit();
						Message msg = handler.obtainMessage();
						msg.what = test_fail;
						handler.sendMessage(msg);
					}
				} catch (Exception e) {
					// TODO: handle exception
					e.printStackTrace();
				}
			}
		};
		Thread testThread = new Thread(r);
		testThread.start();
	}
}
这个界面展示了基本所有功能,验证你的飞信号码和密码是否正确,是否要添加飞信好友,是否要进行飞信群发。

添加飞信好友界面源码,AddPerson.java

package com.huangcheng.FetionAdd;


import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;

import com.huangcheng.FetionSendThread.AddThread;
import com.huangcheng.mainFrame.MyAdapter;
import com.huangcheng.mainFrame.MyAdapter.ViewHolder;
import com.huangcheng.mainFrame.R;

public class AddPerson extends Activity{
	private ListView list;
	private Button yes_add,no_add;
	private MyAdapter adapter;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.addperson);
		yes_add=(Button)findViewById(R.id.yes_add);
		no_add=(Button)findViewById(R.id.no_add);
		list=(ListView)findViewById(R.id.lv);    
		adapter=new MyAdapter(AddPerson.this);    
        list.setAdapter(adapter);    
        list.setItemsCanFocus(false);    
        list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);    
    
        list.setOnItemClickListener(new OnItemClickListener(){    

			@Override
			public void onItemClick(AdapterView<?> arg0, View view, int position,
					long id) {
				// TODO Auto-generated method stub
                ViewHolder vHollder = (ViewHolder) view.getTag();    
              //在每次获取点击的item时将对于的checkbox状态改变,同时修改map的值。    
                              vHollder.cBox.toggle();    
                              MyAdapter.isSelected.put(position, vHollder.cBox.isChecked()); 
			}    
        });
        yes_add.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
		  		AlertDialog.Builder builder = new Builder(AddPerson.this);
				builder.setMessage("确认添加飞信吗?");
				builder.setTitle("提示");
		        builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int arg1) {
						// TODO Auto-generated method stub
				        SharedPreferences sharedPreferences=getSharedPreferences("Fetion_Send",Context.MODE_PRIVATE);
						String pwd=sharedPreferences.getString("password","");
						String user=sharedPreferences.getString("username","");
						List<Map<String, Object>> listaddapter=adapter.getData();
		                for(int i=0;i<list.getCount();i++){    
		                    if(MyAdapter.isSelected.get(i)){    
//		                        ViewHolder vHollder = (ViewHolder) list.getChildAt(i).getTag();    
//		                        System.out.println(vHollder.name.getText());
//		                        System.out.println(vHollder.number.getText());
		                    	Map<String,Object> map=listaddapter.get(i);
						        String to=map.get("number_phone").toString();
						        AddThread thread=new AddThread(user, pwd, to);
						        thread.start();
		                    }    
		                }
						dialog.dismiss();
						AddPerson.this.finish();
					}
				});
		        builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){
		        	@Override
		        	public void onClick(DialogInterface dialog, int arg1) {
		        		// TODO Auto-generated method stub
		        		dialog.dismiss();
		        	}
		        });
				builder.create().show();
			}
		});
        no_add.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
		  		AlertDialog.Builder builder = new Builder(AddPerson.this);
				builder.setMessage("确认退出添加飞信好友吗?");
				builder.setTitle("提示");
		        builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int arg1) {
						// TODO Auto-generated method stub
						dialog.dismiss();
						AddPerson.this.finish();
					}
				});
		        builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){
		        	@Override
		        	public void onClick(DialogInterface dialog, int arg1) {
		        		// TODO Auto-generated method stub
		        		dialog.dismiss();
		        	}
		        });
				builder.create().show();
			}
		});   
	}
}
程序通过飞信API实现飞信好友的添加。

这个是飞信群发界面的源代码:SendPerson.java,通过TabHost控件实现个人和飞信群发组的切换。

package com.huangcheng.FetionSend;

import com.huangcheng.mainFrame.R;

import android.app.Activity;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;

public class SendPerson extends TabActivity implements OnTabChangeListener {
	private TabHost mTabHost;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.sendperson);
		mTabHost = getTabHost();
		mTabHost.setOnTabChangedListener(this);
		setupTab1();
		setupTab2();
		mTabHost.setCurrentTab(0);
	}

	private void setupTab2() {
		// TODO Auto-generated method stub
		Intent intent = new Intent();
		intent.setClass(this, SendGroup.class);
		mTabHost.addTab(mTabHost
				.newTabSpec("SendGroup")
				.setIndicator("飞信群组群发",
						getResources().getDrawable(R.drawable.qun))
				.setContent(intent));
	}

	private void setupTab1() {
		// TODO Auto-generated method stub
		Intent intent = new Intent();
		intent.setClass(this, SendSelected.class);
		mTabHost.addTab(mTabHost
				.newTabSpec("SendSelected")
				.setIndicator("飞信选择群发",
						getResources().getDrawable(R.drawable.one))
				.setContent(intent));
	}

	public void onTabChanged(String tabId) {
		// TODO Auto-generated method stub
		Activity activity = getLocalActivityManager().getActivity(tabId);
		if (activity != null) {
			activity.onWindowFocusChanged(true);
		}
	}

}

这个是给个人发飞信的界面,以及添加联系人组成飞信群组:SendSelected.java

package com.huangcheng.FetionSend;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.huangcheng.mainFrame.MyAdapter;
import com.huangcheng.mainFrame.R;
import com.huangcheng.mainFrame.MyAdapter.ViewHolder;
import com.huangcheng.sql.GroupOfPeople;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Toast;

public class SendSelected extends Activity{
	private Button yes_selected,no_selected;
	private MyAdapter adapter;
	private ListView list;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.sendselected);
		yes_selected=(Button)findViewById(R.id.yes_selected);
		no_selected=(Button)findViewById(R.id.no_selected);
		list=(ListView)findViewById(R.id.listSelected);    
		adapter=new MyAdapter(SendSelected.this);    
        list.setAdapter(adapter);    
        list.setItemsCanFocus(false);    
        list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);    
    
        list.setOnItemClickListener(new OnItemClickListener(){    

			@Override
			public void onItemClick(AdapterView<?> arg0, View view, int position,
					long id) {
				// TODO Auto-generated method stub
                ViewHolder vHollder = (ViewHolder) view.getTag();    
              //在每次获取点击的item时将对于的checkbox状态改变,同时修改map的值。    
                              vHollder.cBox.toggle();    
                              MyAdapter.isSelected.put(position, vHollder.cBox.isChecked()); 
			}    
        });
        yes_selected.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
		  		AlertDialog.Builder builder = new Builder(SendSelected.this);
				builder.setMessage("确认发送飞信吗?");
				builder.setTitle("提示");
		        builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int arg1) {
						// TODO Auto-generated method stub
						List<Map<String, Object>> listaddapter=adapter.getData();
						final ArrayList<String> listItem1=new ArrayList<String>();
						final ArrayList<String> listItem2=new ArrayList<String>();
		                for(int i=0;i<list.getCount();i++){    
		                    if(MyAdapter.isSelected.get(i)){    
//		                        ViewHolder vHollder = (ViewHolder) list.getChildAt(i).getTag();    
//		                        System.out.println(vHollder.name.getText());
//		                        System.out.println(vHollder.number.getText());
		                    	Map<String,Object> map=listaddapter.get(i);
//		                    	System.out.println(map.get("name_phone"));
//		                    	System.out.println(map.get("number_phone"));
//		                    	//发送飞信
//		            			HashMap<String, String> map1=new HashMap<String,String>();
//		            			map1.put("person_name",(String) map.get("name_phone"));
//		            			map1.put("person_number",(String) map.get("number_phone"));
		            			listItem1.add((String) map.get("name_phone"));
		            			listItem2.add((String) map.get("number_phone"));
		                    	//
		                    }    
		                }
				  		AlertDialog.Builder builder = new Builder(SendSelected.this);
						builder.setMessage("是否需要为发送的人建立群组?");
						builder.setTitle("提示");
				        builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {
							
							@Override
							public void onClick(DialogInterface dialog, int arg1) {
								// TODO Auto-generated method stub
						    	  LayoutInflater factory = LayoutInflater.from(SendSelected.this);
						    	  final View textEntryView = factory.inflate(R.layout.myview,null);
						    	  final EditText edit_text = (EditText) textEntryView.findViewById(R.id.group_name);
						    	  AlertDialog.Builder builder = new AlertDialog.Builder(SendSelected.this);
					              builder.setTitle("请输入群组名称:");
					              builder.setView(textEntryView);
					              builder.setPositiveButton("确认", new DialogInterface
					                              .OnClickListener() {
					                                     
					                                      @Override
					                                      public void onClick(DialogInterface dialog, int which) {
					                                              // TODO Auto-generated method stub
					                                    	  
					                                    	  if(edit_text.getText().length()!=0){
					                                    		  //存储进数据库
					                          					ContentValues values=new ContentValues();
					                        					String groupname=edit_text.getText().toString();
					                        					values.put("group_name", groupname);
					                        					GroupOfPeople dbHelper=new GroupOfPeople(SendSelected.this, "Group");
					                        					SQLiteDatabase db=dbHelper.getWritableDatabase();
					                        					db.insert("groupName",null,values);
					       
					                        					//存储数据
					                    						List<Map<String, Object>> listaddapter=adapter.getData();
					                    		                for(int i=0;i<list.getCount();i++){    
					                    		                    if(MyAdapter.isSelected.get(i)){    
					                    		                    	Map<String,Object> map=listaddapter.get(i);
							                          					ContentValues valueGroup=new ContentValues();
							                        					valueGroup.put("groupname", groupname);
							                        					valueGroup.put("person_name", map.get("name_phone").toString());
							                        					valueGroup.put("person_number",map.get("number_phone").toString());
							                        					db.insert("groupPerson",null,valueGroup);
					                    		                    }    
					                    		                }
					                    		                db.close();
					                    		                dbHelper.close();
					                                    	  }
					                                    	  else{
					                                    		  Toast.makeText(SendSelected.this, "输入错误,请重新输入", Toast.LENGTH_LONG);
					                                    	  }
					                                      }
					                              });
							        builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){
							        	@Override
							        	public void onClick(DialogInterface dialog, int arg1) {
							        		// TODO Auto-generated method stub
							        		dialog.dismiss();
							        	}
							        });
									builder.create().show();
							}
						});
				        builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){
				        	@Override
				        	public void onClick(DialogInterface dialog, int arg1) {
				        		// TODO Auto-generated method stub
				        		dialog.dismiss();
				        	}
				        });
						builder.create().show();
						dialog.dismiss();
		                Intent i=new Intent();
		                i.putStringArrayListExtra("name",listItem1);
		                i.putStringArrayListExtra("number",listItem2);
		                i.setClass(SendSelected.this, SendMessageSelected.class);
		                startActivity(i);
					}
				});
		        builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){
		        	@Override
		        	public void onClick(DialogInterface dialog, int arg1) {
		        		// TODO Auto-generated method stub
		        		dialog.dismiss();
		        	}
		        });
				builder.create().show();
			}
		});
        no_selected.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
		  		AlertDialog.Builder builder = new Builder(SendSelected.this);
				builder.setMessage("确认退出飞信群发吗?");
				builder.setTitle("提示");
		        builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int arg1) {
						// TODO Auto-generated method stub
						dialog.dismiss();
						SendSelected.this.finish();
					}
				});
		        builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){
		        	@Override
		        	public void onClick(DialogInterface dialog, int arg1) {
		        		// TODO Auto-generated method stub
		        		dialog.dismiss();
		        	}
		        });
				builder.create().show();
			}
		});
	}
}


这个是飞信群发组的界面:SendGroup.java ,实现飞信群发功能:

package com.huangcheng.FetionSend;

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

import com.huangcheng.mainFrame.R;
import com.huangcheng.sql.GroupOfPeople;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnCreateContextMenuListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class SendGroup extends Activity{
	private final int item1=Menu.FIRST;
	private final int item2=Menu.FIRST+1;
	private final int item3=Menu.FIRST+2;
	private final int item4=Menu.FIRST+3;
	private ListView ListGroup;
	private SimpleAdapter simpleAdapter;
	private String name_group=" ";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.sendgroup);
		ListGroup=(ListView)findViewById(R.id.ListGroup);
		GroupOfPeople dbHelper=new GroupOfPeople(SendGroup.this, "Group");
		SQLiteDatabase dbread=dbHelper.getReadableDatabase();
		Cursor cursor=dbread.query("groupName", new String[]{"id","group_name"},null,null, null, null, null);
		if(cursor.getCount()==0){
			Toast.makeText(SendGroup.this,"没有群存在",500).show();
//			setContentView(R.layout.nullview);
		}
		else{
//			cursor.moveToFirst();
			ArrayList<HashMap<String,String>> listItem=new ArrayList<HashMap<String,String>>();
//			HashMap<String, String> map1=new HashMap<String,String>();
//			map1.put("GROUPNAME",cursor.getString(cursor.getColumnIndex("group_name")));
//			listItem.add(map1);
			while(cursor.moveToNext()){
				HashMap<String, String> map=new HashMap<String,String>();
				map.put("GROUPNAME",cursor.getString(cursor.getColumnIndex("group_name")));
				listItem.add(map);
			}
			simpleAdapter=new SimpleAdapter(this, listItem, R.layout.grouplist, new String[]{"GROUPNAME"}, new int[]{R.id.NameOfGroup});
			ListGroup.setAdapter(simpleAdapter);
			simpleAdapter.notifyDataSetChanged();
			ListGroup.setOnItemLongClickListener(new OnItemLongClickListener() {

				@Override
				public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
						int arg2, long arg3) {
					// TODO Auto-generated method stub
					@SuppressWarnings("unchecked")
					HashMap<String, String> mapgroup= (HashMap<String, String>) ListGroup.getItemAtPosition(arg2);
					name_group=mapgroup.get("GROUPNAME");
					System.out.println("SendGroup name_group="+name_group);
					return false;
				}
			});
			ListGroup.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
				
				@Override
				public void onCreateContextMenu(ContextMenu menu, View arg1,
						ContextMenuInfo arg2) {
					// TODO Auto-generated method stub
					menu.setHeaderTitle(name_group);
					menu.add(0, item1, 0, "发送消息");
					menu.add(0, item2, 0, "查看群组");
					menu.add(0, item3, 0, "删除群组");
					menu.add(0, item4, 0, "取消操作");
				}
			}); 
			}
			dbread.close();
			dbHelper.close();
	}
    @Override  
    public boolean onContextItemSelected(MenuItem item) {  
        switch (item.getItemId()) {  
        case item1:  
        	//发送消息
        	System.out.println("发送消息"+name_group);
        	Intent m=new Intent();
        	m.putExtra("groupname", name_group);
        	m.setClass(SendGroup.this, SendMessage.class);
        	startActivity(m);
            break;  
        case item2:
        	//查看群成员
        	System.out.println("查看群成员"+name_group);
        	Intent p=new Intent();
        	p.putExtra("groupname", name_group);
        	p.setClass(SendGroup.this, PersonInGroup.class);
        	startActivity(p);
            break;  
        case item3:
        	//删除群组
        	System.out.println("删除群组"+name_group);
    		AlertDialog.Builder builder = new Builder(SendGroup.this);
    		builder.setMessage("确认删除吗?");
    		builder.setTitle("提示");
            builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {
            	
    			@Override
    			public void onClick(DialogInterface dialog, int arg1) {
    				// TODO Auto-generated method stub
    				GroupOfPeople dbHelper=new GroupOfPeople(SendGroup.this, "Group");
    				SQLiteDatabase dbwrite=dbHelper.getWritableDatabase();
//    				simpleAdapter.getItem(position);
    				SQLiteDatabase dbread=dbHelper.getReadableDatabase();
//    				Cursor cursor=dbread.query("groupPerson", new String[]{"id","groupname"},"groupname="+"'"+name_group+"'",null, null, null, null);
    				dbwrite.delete("groupPerson", "groupname="+"'"+name_group+"'", null);
//    				Cursor cursor2=dbread.query("groupName", new String[]{"id","group_name"},"group_name="+"'"+name_group+"'",null, null, null, null);
    				dbwrite.delete("groupName", "group_name="+"'"+name_group+"'", null);
    				simpleAdapter.notifyDataSetChanged();
    				dbwrite.close();
    				dbread.close();
    				dbHelper.close();
    				dialog.dismiss();
    				SendGroup.this.onRestart();
    			}
    		});
            builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){
            	@Override
            	public void onClick(DialogInterface dialog, int arg1) {
            		// TODO Auto-generated method stub
            		dialog.dismiss();
            	}
            });
    		builder.create().show();
            break;
        case item4:
        	System.out.println("取消操作"+name_group);
        	break; 
        }  
        return true;  
    }
	@Override
	protected void onRestart() {
		// TODO Auto-generated method stub
		super.onRestart();
		setContentView(R.layout.sendgroup);
		ListGroup=(ListView)findViewById(R.id.ListGroup);
//		ListGroup=(ListView)findViewById(R.id.ListGroup);
		GroupOfPeople dbHelper=new GroupOfPeople(SendGroup.this, "Group");
		SQLiteDatabase dbread=dbHelper.getReadableDatabase();
		Cursor cursor=dbread.query("groupName", new String[]{"id","group_name"},null,null, null, null, null);
		if(cursor.getCount()==0){
			Toast.makeText(SendGroup.this,"没有群存在",500).show();
//			setContentView(R.layout.nullview);
		}
		else{
//			cursor.moveToFirst();
			ArrayList<HashMap<String,String>> listItem=new ArrayList<HashMap<String,String>>();
//			HashMap<String, String> map1=new HashMap<String,String>();
//			map1.put("GROUPNAME",cursor.getString(cursor.getColumnIndex("group_name")));
//			listItem.add(map1);
			while(cursor.moveToNext()){
				HashMap<String, String> map=new HashMap<String,String>();
				map.put("GROUPNAME",cursor.getString(cursor.getColumnIndex("group_name")));
				listItem.add(map);
			}
			simpleAdapter=new SimpleAdapter(this, listItem, R.layout.grouplist, new String[]{"GROUPNAME"}, new int[]{R.id.NameOfGroup});
			ListGroup.setAdapter(simpleAdapter);
			simpleAdapter.notifyDataSetChanged();
			ListGroup.setOnItemLongClickListener(new OnItemLongClickListener() {

				@Override
				public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
						int arg2, long arg3) {
					// TODO Auto-generated method stub
					@SuppressWarnings("unchecked")
					HashMap<String, String> mapgroup= (HashMap<String, String>) ListGroup.getItemAtPosition(arg2);
					name_group=mapgroup.get("GROUPNAME");
					System.out.println("SendGroup name_group="+name_group);
					return false;
				}
			});
			ListGroup.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
				
				@Override
				public void onCreateContextMenu(ContextMenu menu, View arg1,
						ContextMenuInfo arg2) {
					// TODO Auto-generated method stub
					menu.setHeaderTitle(name_group);
					menu.add(0, item1, 0, "发送消息");
					menu.add(0, item2, 0, "查看群组");
					menu.add(0, item3, 0, "删除群组");
					menu.add(0, item4, 0, "取消操作");
				}
			}); 
			}
			dbread.close();
			dbHelper.close();
	}
	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		onRestart();
	}
}
四个类实现本程序的基本框架,还有一些其他的比如发送飞信信息的线程类,数据库类,实现ListView效果的Adapter类,大家可以下载我的源码,源码地址是:
http://download.csdn.net/detail/hc260164797/4324722

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值