很久以前写过的一个程序,主要用到了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.youkuaiyun.com/detail/hc260164797/4324722