在先前的文章 activity之间跳转传值 已经学习过这方面的内容,接下来实现这个demo就简单多了;
1、layout配置文件(一个现实结果的text 一个获取结果的按钮)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="vertical" android:padding="4dip" > <TextView android:id="@+id/app_activity_recevie_results" android:layout_width="match_parent" android:layout_height="10dip" android:layout_weight="1" android:textColor="@drawable/black" android:background="@drawable/green" android:paddingBottom="4dip" > </TextView> <Button android:id="@+id/app_activity_recevie_get_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0" android:text="@string/app_activity_recevie_get_text" > <requestFocus /> </Button> </LinearLayout>
2、获取结果的按钮的点击事件
OnClickListener getBtnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { startActivityForResult(new Intent(RecevieResult.this,RecevieResultSendMsg.class), REQUEST_CODE); } };
请注意这里使用的是 startActivityForResult。
接下来重写获取结果的方法
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if (RESULT_OK == resultCode) { if (textResults.getText().length()>0) { textResults.append("\r\n"); } textResults.append(data.getAction()+data.getExtras().getString("data")); } }
3、现在来实现RecevieResultSendMsg,点击按钮返回结果
OnClickListener okBtnOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("data", "校验成功"); intent.setAction("确认:"); setResult(RESULT_OK, intent); finish(); } }; OnClickListener cancelBtnClickListener = new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("data", "校验失败"); intent.setAction("失败:"); setResult(RESULT_OK, intent); finish(); } };
4、效果图: