Android day_09-02 (Activity 短信发送器案例)

本文介绍了一款短信发送器的应用案例,重点讲解了如何在Android应用间传递数据,包括使用Intent进行Activity之间的数据交换,以及如何实现短信的批量发送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

短信发送器案例:

主要知识点:接收一个Activity关闭时的返回的数据   关闭一个Activity  finish()

主要代码: 

 Intent intent = new Intent(this, ContacatActivity.class);
        //startActivity(intent);
        //注意:如果点击按钮开启了一个Activity 并且当开启的Activity关闭时 我想要他的数据用下面的方法开启Activity

        startActivityForResult(intent, 10);
//把数据返回个调用者
                Intent intent=new Intent();
                intent.putExtra("phone",phone);
                //可以吧结果返回给调用者  第一个为结果码,第二个为意图Intent
                setResult(10,intent);
                //关闭当前页面
                finish();
//通过onActivityResult返回数据
 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data){        
             //通过结果码判断数据来源
        if (resultCode == 10) {
            //说明数据是从ContacatActivity返回
            String phone = data.getStringExtra("phone");
            et_num.setText(phone);
        } else if (resultCode == 20) {
            //说明数据是从MobanActivity返回
            String moban = data.getStringExtra("moban");
            et_content.setText(moban);
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

全部代码: 

public class MainActivity extends AppCompatActivity {
    EditText et_num;
    EditText et_content;

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

    }

    public void click1(View view) {
        Intent intent = new Intent(this, ContacatActivity.class);
        //startActivity(intent);
        //注意:如果点击按钮开启了一个Activity 并且当开启的Activity关闭时 我想要他的数据用下面的方法开启Activity
        startActivityForResult(intent, 10);
    }

    public void click2(View view) {
        Intent intent = new Intent(this, MobanActivity.class);
        //        //startActivity(intent);
        //注意:如果点击按钮开启了一个Activity 并且当开启的Activity关闭时 我想要他的数据用下面的方法开启Activity
        startActivityForResult(intent, 20);
    }

    public void send(View v) {
        //获取发短信的号码和内容
        String num = et_num.getText().toString().trim();
        String content = et_content.getText().toString().trim();
        //获取SmsManager实例
        SmsManager smsManager = SmsManager.getDefault();
        //如果短信过长  分条发送
        ArrayList<String> d = smsManager.divideMessage(content);
        for (String div : d) {
            //第一个发送的地址(号码)第二个服务中心 默认null 第三个短信内容 第四个null
            smsManager.sendTextMessage(num, null, div, null, null);
        }

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        if (resultCode == 10) {
            //说明数据是从ContacatActivity返回
            String phone = data.getStringExtra("phone");
            et_num.setText(phone);
        } else if (resultCode == 20) {
            //说明数据是从MobanActivity返回
            String moban = data.getStringExtra("moban");
            et_content.setText(moban);
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
}
public class ContacatActivity extends Activity {
    List<Person> lists;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_contacat);
        ListView lv=findViewById(R.id.lv);
         lists=new ArrayList<Person>();
        for (int i=0;i<20;i++){
            Person p=new Person();
            p.setName("张三"+i);
            p.setPhone("121"+i);
            lists.add(p);
        }
        lv.setAdapter(new MyAdapter());
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                //获取点中条目的数据
                String phone=lists.get(i).getPhone();
                //把数据返回个调用者
                Intent intent=new Intent();
                intent.putExtra("phone",phone);
                //可以吧结果返回给调用者  第一个为结果码,第二个为意图Intent
                setResult(10,intent);
                //关闭当前页面
                finish();
                //把数据传给MainActivity
            }
        });
    }



    private class MyAdapter extends BaseAdapter{

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

        @Override
        public Object getItem(int i) {
            return null;
        }

        @Override
        public long getItemId(int i) {
            return 0;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            View v;
            if (view == null){
                v=View.inflate(getApplicationContext(),R.layout.contacat_item,null);
            }else{
                v=view;
            }
            TextView tv_name=v.findViewById(R.id.tv_name);
            TextView tv_phone=v.findViewById(R.id.tv_phone);
            tv_name.setText(lists.get(i).getName());
            tv_phone.setText(lists.get(i).getPhone());
            return v;
        }
    }
}
public class MobanActivity extends Activity {

    String object[]={"我在开会","我在忙","saddw","sadw3afgrehfczg"};
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_contacat);
        ListView lv=findViewById(R.id.lv);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.item,object);
        lv.setAdapter(adapter);
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                //获取点中条目的数据
                String moban=object[i];
                //把数据返回个调用者
                Intent intent=new Intent();
                intent.putExtra("moban",moban);
                //可以吧结果返回给调用者  第一个为结果码,第二个为意图Intent
                setResult(20,intent);
                //关闭当前页面
                finish();
                //把数据传给MainActivity
            }
        });
    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值