很久以前写过的一个程序,主要用到了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;@Overridepublic 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() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubTestLogin();}});add.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubSharedPreferences 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() {@Overridepublic void onClick(DialogInterface dialog,int arg1) {// TODO Auto-generated method stubdialog.dismiss();Intent intent = new Intent();intent.setClass(FetionSend.this,AddPerson.class);startActivity(intent);}});builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int arg1) {// TODO Auto-generated method stubdialog.dismiss();}});builder.create().show();} else {Intent intent = new Intent();intent.setClass(FetionSend.this, AddPerson.class);startActivity(intent);}}});send.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubSharedPreferences 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() {@Overridepublic void onClick(DialogInterface dialog,int arg1) {// TODO Auto-generated method stubdialog.dismiss();Intent intent = new Intent();intent.setClass(FetionSend.this,SendPerson.class);startActivity(intent);}});builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int arg1) {// TODO Auto-generated method stubdialog.dismiss();}});builder.create().show();} else {Intent intent = new Intent();intent.setClass(FetionSend.this, SendPerson.class);startActivity(intent);}}});quit.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubAlertDialog.Builder builder = new Builder(FetionSend.this);builder.setMessage("确认退出吗?");builder.setTitle("提示");builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubdialog.dismiss();FetionSend.this.finish();System.exit(0);}});builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubdialog.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() {@Overridepublic void run() {// TODO Auto-generated method stubtry {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());// 为输出创建BufferedReaderBufferedReader buffer = new BufferedReader(in);String inputLine = null;// 使用循环来读取获得的数据while (((inputLine = buffer.readLine()) != null)) {// 我们在每一行后面加上一个"\n"来换行resultData += inputLine + "\n";}// 关闭InputStreamReaderin.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 exceptione.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;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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(){    @Overridepublic void onItemClick(AdapterView<?> arg0, View view, int position,long id) {// TODO Auto-generated method stubViewHolder vHollder = (ViewHolder) view.getTag();    //在每次获取点击的item时将对于的checkbox状态改变,同时修改map的值。    vHollder.cBox.toggle();    MyAdapter.isSelected.put(position, vHollder.cBox.isChecked()); }    });yes_add.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubAlertDialog.Builder builder = new Builder(AddPerson.this);builder.setMessage("确认添加飞信吗?");builder.setTitle("提示");builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubSharedPreferences 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(){@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubdialog.dismiss();}});builder.create().show();}});no_add.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubAlertDialog.Builder builder = new Builder(AddPerson.this);builder.setMessage("确认退出添加飞信好友吗?");builder.setTitle("提示");builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubdialog.dismiss();AddPerson.this.finish();}});builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubdialog.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;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.sendperson);mTabHost = getTabHost();mTabHost.setOnTabChangedListener(this);setupTab1();setupTab2();mTabHost.setCurrentTab(0);}private void setupTab2() {// TODO Auto-generated method stubIntent 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 stubIntent 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 stubActivity 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;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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(){    @Overridepublic void onItemClick(AdapterView<?> arg0, View view, int position,long id) {// TODO Auto-generated method stubViewHolder vHollder = (ViewHolder) view.getTag();    //在每次获取点击的item时将对于的checkbox状态改变,同时修改map的值。    vHollder.cBox.toggle();    MyAdapter.isSelected.put(position, vHollder.cBox.isChecked()); }    });yes_selected.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubAlertDialog.Builder builder = new Builder(SendSelected.this);builder.setMessage("确认发送飞信吗?");builder.setTitle("提示");builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubList<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() {@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubLayoutInflater 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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubif(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(){@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubdialog.dismiss();}});builder.create().show();}});builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubdialog.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(){@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubdialog.dismiss();}});builder.create().show();}});no_selected.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubAlertDialog.Builder builder = new Builder(SendSelected.this);builder.setMessage("确认退出飞信群发吗?");builder.setTitle("提示");builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubdialog.dismiss();SendSelected.this.finish();}});builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubdialog.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=" ";@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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() {@Overridepublic 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() {@Overridepublic void onCreateContextMenu(ContextMenu menu, View arg1,ContextMenuInfo arg2) {// TODO Auto-generated method stubmenu.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() {@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubGroupOfPeople 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(){@Overridepublic void onClick(DialogInterface dialog, int arg1) {// TODO Auto-generated method stubdialog.dismiss();}});builder.create().show();break;case item4:System.out.println("取消操作"+name_group);break; }  return true;  }@Overrideprotected void onRestart() {// TODO Auto-generated method stubsuper.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() {@Overridepublic 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() {@Overridepublic void onCreateContextMenu(ContextMenu menu, View arg1,ContextMenuInfo arg2) {// TODO Auto-generated method stubmenu.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();}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();onRestart();}
}

四个类实现本程序的基本框架,还有一些其他的比如发送飞信信息的线程类,数据库类,实现ListView效果的Adapter类,大家可以下载我的源码,源码地址是:
http://download.csdn.net/detail/hc260164797/4324722

android飞信群发助手相关推荐

  1. Android基础整合项目之节日群发助手(二)

    Android基础整合项目(一) 之节日群发助手part 2 --转载请注明出处:coder-pig 本节引言: 在上一节中我们已经做出了我们群发助手的第一个界面以及完成了联系人的读取以及数据库的 录 ...

  2. Android远程桌面助手(B1391)

    ARDC(B1391), Download:https://files.cnblogs.com/files/we-hjb/ARDC%28B1391%29_EN.7z Android远程桌面助手(B13 ...

  3. 截屏 远程协助 android,ARDC Android 远程桌面助手 录屏 演示 MD

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? ARDC Android 远程桌面助手 录屏 演示 MD ARDC:Android Remote Displayer a ...

  4. Android远程桌面助手(B1309)

    修改了窗口缩放的处理,支持Android Car等非常规分辨率的Android设备: 修改了获取Android端软件版本的方法,优化了APK的升级逻辑: 优化了远程输入法功能,支持利用PC端输入法快速 ...

  5. Android蓝牙调试助手

    PS:最近一直在搞Android上的蓝牙应用,每次在PC上调试蓝牙设备中的数据还可以,但是在Android手机上就非常不方便,所以自己写了个简单的Android蓝牙调试助手,希望各位下载使用,如有问题 ...

  6. Android WIFI调试助手源码分析

    **WIFI调试助手源码(支持十六进制和ACSII发送与接收) 客户端(我自己修改的工程文件,支持十六制的接收与发送,主要是通信协议,代码简单,可轻松改造为上位机) ** 分为操作分析和代码分析. 1 ...

  7. 所立得新浪博客群发助手V1.3特别版

    <所立得新浪博客群发助手V1.3特别版>及其注册补丁吾有啊-草根站长资源站提供免费下载,使用无任何限制.如果你还没有博客群发推广工具,WuYouA.CoM<所立得新浪博客群发助手V1 ...

  8. Android版xx助手之天天酷跑外挂详细分析

    Android版xx助手之天天酷跑外挂详细分析 图/文      莫灰灰 背景 近些年来,移动互联网的大肆崛起,潜移默化中影响着人们的生活和工作习惯.当腾讯的微信平台接入手机游戏之后,移动端的游戏也开 ...

  9. android studio 健身软件,基于Android的健身助手设计与实现.doc

    摘要:科学技术日新月异,人们的生产工具较过去有了很大的变化.生产力的不断进步使得人们越来越多的放弃手工生产,转而坐在电脑面前,通过电脑办公.这虽然极大的提高了生产办公效率,但由于长期处于坐的姿势以及长 ...

  10. android uart 助手,android串口通讯助手源码(ComAssistant)

    [实例简介]Android串口通信 android串口通讯助手源码,可以获取设备中可用串口.破特率,发送hex数据.文本txt数据等功能 [实例截图] [核心代码] ComAssistant └── ...

最新文章

  1. 中小型研发团队架构实践:微服务架构
  2. 2.3.3 mysql 权限系统介绍
  3. 【Linux】一步一步学Linux——id命令(94)
  4. 成都东万计算机学校,东兴区东方科技职业技术学校
  5. char *c = abc和char c[]=abc
  6. Opencv中IplImage的四字节对齐问题
  7. pb利用datawindow查询符合条件的数据并且过滤掉其他数据_数据质量监测
  8. 在.Net中,如何创建一个后台执行的进程?
  9. 码上用它开始Flutter混合开发——FlutterBoost
  10. 深入理解Java泛型
  11. html div图片定位,html中div定位练习
  12. mybatis 不等于_MyBatis 第一天
  13. install lsa package for R on ubuntu 10.04 lts lucid
  14. Java建造者模式(Builder模式)
  15. 计算机科学与技术和软件工程区别
  16. Ubuntu18.04完全美化及常用软件安装 |QQ|TIM|微信|坚果云|备份
  17. vs中opencv配置
  18. CentOS7 通过Systemctl实现脚本的开机自启(亲测有效)
  19. a DNS-1123 label must consist of lower case alphanumeric characters or ‘-‘, and must start and end w
  20. 制作小地图MiniMap小结

热门文章

  1. 计算机网络篇- 网络层
  2. 按月统计的sql语句
  3. 业务:杭州某私募基金公司商业模式
  4. Power BI报表常见格式 1 - 报告
  5. 笔记十一:提升高效技术领导的创新能力
  6. 魔百盒CM211-1-晶晨S905L3B芯片系列-红外蓝牙线刷固件及教程
  7. 电子科技大学关于佛系青年的社会实践调查
  8. WordPress清理和优化数据库,推荐几个优秀插件
  9. 如何将windows桌面变成类似mac样式
  10. 软件测试人员,究竟怎么霸气过七夕?!大神攻略请笑纳!