博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
返回数据到前一个activity
阅读量:6223 次
发布时间:2019-06-21

本文共 4630 字,大约阅读时间需要 15 分钟。

在主程序中 调用activity2的方法改为startActivityForResult(intent,0) 0代表下一个Activity要返回值的依据,可指定为自行定义的参考标示符。程序重写onactivityresult()这个方法,使程序在收到result后,重写加载写回原先输入的值。(在AS中重写结果报错,我删去了@override)

activity主程序的代码

package com.administrator.testall;import android.os.Bundle;import android.provider.MediaStore;import android.support.v7.app.ActionBarActivity;import android.content.Intent;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.RadioButton;import android.widget.RadioGroup;public class ChangeTest01 extends ActionBarActivity {    private EditText et;    private RadioButton rg1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_change_test01);        Button button01 = (Button) findViewById(R.id.button1);        button01.setOnClickListener(new Button.OnClickListener()        {                                       public void onClick(View v)                                       {                                           EditText et = (EditText) findViewById(R.id.editText1);                                           double editText1 = Double.parseDouble(et.getText().toString()); //取值                                           String choose = "";                                           RadioButton rg1 = (RadioButton) findViewById(R.id.radioButton); //取复选框值                                           if(rg1.isClickable())                                           {                                               choose = "M";                                           }                                           else choose = "F";                                           Intent intent = new Intent();                                           intent.setClass(ChangeTest01.this,ChangeTest02.class); //activity却换                                           Bundle bundle = new Bundle();  //activity的数据传递                                           bundle.putDouble("edit1",editText1); //引号内为传递数据,引号后面为传递值                                           bundle.putString("choose",choose);                                           intent.putExtras(bundle); //将bundle对象分配给intert;                                           startActivityForResult(intent, 0);    //调用另一个activity                                       }                                    }        );    }    protected void OnActivityResult(int requestCode,int resultCode,Intent data)    {        switch (resultCode)        {            case RESULT_OK:                //取得来自activity2的数据 显示在画面上                Bundle bundle = data.getExtras();                String choose = bundle.getString("choose");                double edit1 = bundle.getDouble("edit1");;                et.setText(String.valueOf(edit1));                if(choose.equals("M")) rg1.setChecked(true);                break;            default:                break;        }    }}

注意 这里不需要使用@Override重写

activity2的代码如下

package com.administrator.testall;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.widget.Button;import android.widget.TextView;import android.view.View;public class ChangeTest02 extends ActionBarActivity {    Bundle bundle;    Intent intent;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_change_test02);        intent = this.getIntent();        bundle = this.getIntent().getExtras(); //取得intent中的bundle对象        String choose = bundle.getString("choose"); //取得bundle对象中的数据        double edit1 = bundle.getDouble("edit1");        String chooseText = "";        if(choose.equals("M"))        {            chooseText="A";        }else chooseText="B";        TextView textView1 = (TextView) findViewById(R.id.textView1);        textView1.setText(chooseText);        TextView textView2 = (TextView) findViewById(R.id.textView2);        textView2.setText(String.valueOf(edit1)); //double转string        Button button1 = (Button) findViewById(R.id.button1);        button1.setOnClickListener(new Button.OnClickListener()        {                                      public void onClick(View v)                                      {                                          ChangeTest02.this.setResult(RESULT_OK,intent); //返回result到上一个activity                                          ChangeTest02.this.finish();  //结束这个activity                                      }                                   }        );    }}

 

转载于:https://www.cnblogs.com/bycainiao/p/5192393.html

你可能感兴趣的文章
市场井喷 到家服务将颠覆在线教育模式
查看>>
阿里云发布高IO实例 存储性能比通用型提升300%
查看>>
专访声网CEO赵斌:实时互联网正深入影响垂直领域
查看>>
中国人工智能学会通讯——新一轮人工智能发展的三大特征及其展望 1.1 新一轮人工智能发展的三个特征...
查看>>
超大规模数据中心运营商Switch公司申请IPO
查看>>
英特尔首度公开展示SSD超频技术
查看>>
叱咤大数据的Regex真的是正则表达式?
查看>>
什么将成为云计算的基础设施
查看>>
网络协议
查看>>
加速行业标准研制 区块链才能成为信任机器
查看>>
《并行计算的编程模型》一2.4.3 阻塞与非阻塞
查看>>
云计算发展的7大关键点
查看>>
零售业的数字机遇:把每个消费者都当成VIP
查看>>
360最新产品亮相全球顶级安全产业大会
查看>>
2014 值得关注的信息安全发展趋势
查看>>
2016年互联网行业十大预测:云计算大数据
查看>>
BlackHat2017热点之DefPloreX---大规模网络犯罪取证的机器学习工具
查看>>
你的企业是否有自动补丁管理工具的潜在需求?
查看>>
阿里云异构计算产品家族亮相 覆盖全场景AI和高性能计算需求
查看>>
巴斯夫如何找到清洁餐具的秘密
查看>>