短信发送器案例:

主要知识点:接收一个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 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 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();        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 adapter = new ArrayAdapter(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            }        });    }

 

 

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. 安卓四大组件之——ContentProvider学习
  3. Android底部fragment互相跳转
  4. android 数据存储——SharedPreferences,有代码实现,简单易懂
  5. Android中View和ViewGroup事件分发拦截机制完美分析
  6. ViewModels 和 LiveData:模式 +反模式
  7. Android(摩托)HttpURLConnection getInputStream()堵塞
  8. Android-Room自定义类型
  9. Android手写数据库框架设计(删改查)

随机推荐

  1. 组件必知必会|那些年我们使用过的轮子—Fi
  2. 告别祈祷式编程|单元测试在项目里的正确落
  3. 从计算机视觉到人脸识别:一文看懂颜色模型
  4. 宏定义的用法总结
  5. 尚能饭否|技术越来越新,我对老朋友jQuery还
  6. 【粉丝问答19】为啥变量没初始化就用了?那
  7. 22.从0学ARM-移植uboot支持exynos4412
  8. 合约跟单社区系统开发
  9. Python属不属于汇编语言?Python课程
  10. OpenShift 4的身份认证 | 让我们重新认识