获取Avtivity的返回参数
在传递值对象(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,强制类型转换
运行
标签:安卓开发