羣發短信

package com.example.sendmessage;
import java.util.ArrayList;
import java.util.List;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.telephony.SmsManager;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnLongClickListener;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText number,content;
private SmsManager sms;
private List<String>numberList = new ArrayList<String>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
number = (EditText)this.findViewById(R.id.number);
content = (EditText)this.findViewById(R.id.content);
sms = SmsManager.getDefault();
number.setOnLongClickListener(listener);
}
public void send(View view){
String nb = number.getText().toString();
String ct = content.getText().toString();
ArrayList<String> msgs = sms.divideMessage(ct);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(), 0);
for (String msg : msgs) {
sms.sendTextMessage(nb, null, msg, pendingIntent, null);
}
Toast.makeText(this, "發送成功", Toast.LENGTH_LONG).show();
/*try {
Thread.sleep(5000);
this.finish();
} catch (InterruptedException e) {
e.printStackTrace();
}*/
}
private OnLongClickListener listener = new OnLongClickListener() {
public boolean onLongClick(View view) {
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
ContentResolver resolver = MainActivity.this.getContentResolver();
final Cursor cursor = resolver.query(uri, null, null, null, null);
System.out.println("size="+cursor.getCount());
while(cursor.moveToNext()){
String num = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
System.out.println("------>"+num);
}
BaseAdapter adapter = new BaseAdapter() {
public View getView(int position, View view, ViewGroup group) {
cursor.moveToPosition(position);
String cb_num = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
CheckBox cb = new CheckBox(MainActivity.this);
cb.setText(cb_num);
if(isChecked(cb_num)){
cb.setChecked(true);
}
return cb;
}
private boolean isChecked(String cb_num) {
for (String n : numberList) {
if(cb_num.equals(n)){
return true;
}
}
return false;
}
public long getItemId(int position) {
return position;
}
public Object getItem(int position) {
return position;
}
public int getCount() {
return cursor.getCount();
}
};
View selectView =  getLayoutInflater().inflate(R.layout.list, null);
final ListView listview = (ListView)selectView.findViewById(R.id.list);
listview.setAdapter(adapter);
new AlertDialog.Builder(MainActivity.this)
.setView(selectView)
.setPositiveButton("確定",
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
numberList.clear();
for (int i = 0; i < listview.getCount(); i++) {
CheckBox listcb = (CheckBox)listview.getChildAt(i);
if(listcb.isChecked()){
numberList.add(listcb.getText().toString());
}
}
number.setText(numberList.toString());
}
}).show();
return true;
}
};
}

布:

list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list"
/>
</LinearLayout>

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="發送號碼"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/number"
android:inputType="number"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="內容"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minLines="4"
android:id="@+id/content"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="發送"
android:onClick="send"
/>
</LinearLayout>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章