Android 短信发送器

来源:互联网 发布:删除json里的一个对象 编辑:程序博客网 时间:2024/06/07 03:09
public class MainActivity extends AppCompatActivity {    private EditText et_number;    private EditText et_content;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //1 找到我们关心的控件        et_number = (EditText) findViewById(R.id.et_number);        et_content = (EditText) findViewById(R.id.et_content);    }    // 点击按钮跳转到发送短信模板页面    public void insertsms(View v) {        Intent intent = new Intent(this, SmsTemplateActivity.class);        startActivityForResult(intent, 2);    }    // 点击按钮 跳转到contactActivity页面    public void add(View v) {        Intent intent = new Intent(this, ContactActivity.class);//        startActivity(intent);        /*   小细节 如果点击按钮 开启了另外一Activity             并且当开启的这个Activity关闭的时候,             我想要这个开启Activity的数据,             用下面这个方法开启Activity        */        startActivityForResult(intent, 1);    }    //当我开启的Activity页面关闭的时候 这个方法就调用    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (requestCode == 1) {            // 代表请求ContactActivity这个页面的数据            String phone = data.getStringExtra("phone");            et_number.setText(phone);        } else if (requestCode == 2) {            // 代表请求 短信模板页面的数据            String smsContent = data.getStringExtra("smscontent");            et_content.setText(smsContent);        }//        if (resultCode == 10) {//            // 说明数据是从 ContactActivity返回的//            String phone = data.getStringExtra("phone");//            et_number.setText(phone);//        } else if (resultCode == 20) {//            // 说明数据是从 SmsTempalte返回的//            String smsContent = data.getStringExtra("smscontent");//            et_content.setText(smsContent);//        }    }    // 点击按钮 发送短信    public void send(View v) {        //1 获取发送短信的号码 和发送短信的内容        String number = et_number.getText().toString().trim();        String content = et_content.getText().toString().trim();        //2 获取到smsmanager的实例        SmsManager smsManager = SmsManager.getDefault();        // 短信内容可能会过长,所以需要分割?        ArrayList<String> divideMessages = smsManager.divideMessage(content);        for (String div : divideMessages) {            /**             * destinationAddress 发送给谁             * scAddress 服务中心号码             * text 要发送的内容             */            smsManager.sendTextMessage(number, null, div, null, null);        }    }}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.a43_sms_sender.MainActivity">    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="wrap_content">        <EditText            android:id="@+id/et_number"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:hint="请输入手机号码"/>        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_alignBottom="@id/et_number"            android:layout_alignParentRight="true"            android:onClick="add"            android:text="+"/>    </RelativeLayout>    <EditText        android:id="@+id/et_content"        android:layout_width="match_parent"        android:layout_height="200dp"        android:gravity="top"        android:hint="请输入发送短信的内容"/>    <Button        android:onClick="insertsms"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="插入短信模板"/>    <Button        android:onClick="send"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="发送"/></LinearLayout>


public class ContactActivity extends AppCompatActivity {    private List<Person> lists;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_contact);         //加载布局        //1 找到控件        ListView lv = (ListView) findViewById(R.id.lv);        //2 准备listview 要显示的数据 模拟点假数据        lists = new ArrayList<>();        for (int i = 0; i < 20; i++) {            Person p = new Person();            p.setName("张三" + i);            p.setPhone("11" + i);            lists.add(p);        }        //3 展示数据        lv.setAdapter(new MyAdapter());        //4 给listview 设置点击事件        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                //5 获取我点中条目的数据 数据在哪里存着呢 就去哪里取                String phone = lists.get(position).getPhone();                //5.0 把数据返回给调用者                Intent intent = new Intent();                intent.putExtra("phone", phone);                // 把结果返回给调用者                setResult(10, intent);                // 关闭当前页面                finish();            }        });    }    // 后退键    @Override    public void onBackPressed() {        super.onBackPressed();    }    private class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return lists.size();        }        @Override        public Object getItem(int position) {            return null;        }        @Override        public long getItemId(int position) {            return 0;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            View view;            if (convertView == null) {                view = View.inflate(getApplicationContext(), R.layout.contact_item, null);            } else {                view = convertView;            }            //1 找到我们在item中定义的控件 用来显示数据            TextView tv_name = (TextView) view.findViewById(R.id.tv_name);            TextView tv_phone = (TextView) view.findViewById(R.id.tv_phone);            //2 展示数据            tv_name.setText(lists.get(position).getName());            tv_phone.setText(lists.get(position).getPhone());            return view;        }    }}

public class SmsTemplateActivity extends AppCompatActivity {    String objects[] ={"我在吃饭,请稍后联系","我在开会,请稍后联系","我在上课,请稍后联系","我在打代码,请稍后联系","我在约会,请稍后联系"};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_sms_template);        //1 找到lv        ListView lv = (ListView) findViewById(R.id.lv);        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.smstemplate_item, objects);        //2 显示数据        lv.setAdapter(adapter);        //3 设置lv的条目的点击事件        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                //4 取出点击条目的数据                String smsContent = objects[position];                //5 把smsContent返回给调用者                Intent intent = new Intent();                intent.putExtra("smscontent", smsContent);                setResult(20, intent);                //调用finish                finish();            }        });    }}


0 0
原创粉丝点击