您的位置:首页 > 移动开发 > Android开发

Android 短信发送器

2016-06-29 19:04 399 查看
我编写这个小应用主要是练习Intent这个类的使用,使用Intent在Activity之间传输数据,处理数据,下面是我的源码:

//MainActivity.java
public class MainActivity extends Activity {

private EditText et_number,et_content;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_number = (EditText) findViewById(R.id.et_number);
et_content = (EditText) findViewById(R.id.et_content);

Intent intent = getIntent();
String number = intent.getStringExtra("number");
et_number.setText(number);
}

public void clickAdd(View v){
Intent intent = new Intent(this,ContactsActivity.class);
//		startActivity(intent);

//当点击按钮开启了一个Activity,当开启的Activity关闭的时候 我想要这个Activity的数据,用下面这个方法
startActivityForResult(intent, 1);
}

//当我们启动的Activity关闭的时候调用
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == 10){
String number = data.getStringExtra("number");
et_number.setText(number);
}else if(resultCode == 20){
String content = data.getStringExtra("content");
et_content.setText(content);
}
//注意这里的空指针异常

//		super.onActivityResult(requestCode, resultCode, data);
}

public void insert(View v){
Intent intent = new Intent(this,SmsTemplateActivity.class);
startActivityForResult(intent, 2);
}

public void send(View v){

String number = et_number.getText().toString().trim();
String content = et_content.getText().toString().trim();
SmsManager smsmanager = SmsManager.getDefault();
//内容过多,分条发送
ArrayList<String> divide = smsmanager.divideMessage(content);
for(String div : divide){
//scAddress:服务中心号码
smsmanager.sendTextMessage(number, null, div, null, null);

}

}

}

ContactsActivity.java
public class ContactsActivity extends Activity {

private ListView lv;
List<Person> lists ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contacts);
lv = (ListView) findViewById(R.id.lv);
lists = new ArrayList<Person>();
Person person = new Person();
person.setName("Jack");
person.setNumber("110");
lists.add(person);
Person person1 = new Person();
person1.setName("Tom");
person1.setNumber("119");
lists.add(person1);
lv.setAdapter(new myAdater());
lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

Intent intent = new Intent();
intent.putExtra("number", lists.get(position).getNumber());

//把结果返回给调用者
setResult(10, intent);
//关闭当前页面
finish();
}

});
}
class myAdater extends BaseAdapter{

@Override
public int getCount() {
return lists.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView == null){
holder = new ViewHolder();
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, null);
holder.mname = (TextView) convertView.findViewById(R.id.name);
holder.mnumber = (TextView) convertView.findViewById(R.id.number);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.mname.setText(lists.get(position).getName());
holder.mnumber.setText(lists.get(position).getNumber());
return convertView;
}

}
class ViewHolder{
TextView mname;
TextView mnumber;
}

}

SmsTemplateActivity.java
public class SmsTemplateActivity extends Activity {

ListView templatelv;
String objects[] = {"对不起,我在开会",
"不好意思,我等下给你回电",
"请稍后,我在吃饭"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sms_template);
templatelv = (ListView) findViewById(R.id.templatelv);

ArrayAdapter< String > adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.templateitem, objects);
templatelv.setAdapter(adapter);
templatelv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent();
String content = objects[position];
intent.putExtra("content", content);
setResult(20,intent);
finish();

}
});
}

}

//Person.java
public class Person {

private String name;
private String number;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}

}


项目源文件和安装包:点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息