传递值对象(Serializable和Parcelable)基础上
在content_the_aty.xml上

<LinearLayout 改为LinearLayout
    <TextView
        android:text="获取Activity返回的参数"
        android:id="@+id/tv" />

    <Button
        android:text="Send back"
        android:id="@+id/button" />

    <EditText
        android:id="@+id/editText"
        android:layout_weight="1" />

</LinearLayout>

在MainActivity.java中添加

public class MainActivity extends AppCompatActivity {
    private TextView textView;//定义一个textView

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView= (TextView) findViewById(R.id.textView);//2强制类型转换,获取textView对象

在TheAty.java中

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent i=new Intent();//2返回对象Intent,把i传进来
        i.putExtra("data",editText.getText().toString());//4传进来 一个data,内容是editText字符串
        setResult(1,i);//1返回状态码(如1)和返回数据()
        finish();//把当前的activity结束
    }
});

在TheAty.java中

public class TheAty extends AppCompatActivity {
    private TextView tv;
    private EditText editText;//3定义一个editText

在MainActivity.java中添加

//                startActivity(i);//此时启动不了
                startActivityForResult(i,0);接收传回的参数,i和请求的代码0

继续重写一个函数:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {//Intent data指的是TheAty.java中的setResult(1,i);的i
        super.onActivityResult(requestCode, resultCode, data);
        textView.setText("返回的数据是"+data.getStringExtra("data"));

在TheAty.java中

 tv= (TextView) findViewById(R.id.tv);
        editText= (EditText) findViewById(R.id.editText);//获取editText,强制类型转换

运行

标签:安卓开发

你的评论