startActivityForResult()用法
来源:互联网 发布:天空之眼 知乎 编辑:程序博客网 时间:2024/05/01 12:21
* startActivityForResult(Intent intent,int requestCode)
* 方法打开新的新的Activity,
* 新的Activity关闭后向前面的Activity传回数据,
* 为了得到传回的数据,必须在前面的Activity中重写
* onActicityResult(int requestCode,int resultCode,Intent data)方法
*/
MainActivity的布局文件代码见前一篇(Intent传值),活动代码如下:
public static final int REQUEST=1;
public void onClick(View v) {//点击Button事件触发的相应操作
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.button2:
Intent intent1=new Intent(MainActivity.this,RequestActivity.class);
//发送意图标识为REQUEST==1
//下面第二个参数为请求码,可以根据业务需求自己编号
startActivityForResult(intent1, REQUEST);
}}
/*
* 为了得到传回的数据,必须在前面的Activity中(即MainActivity类)重写onActivityResult方法
*
* requestCode:请求码,即调用startActivityForResult()传递过去的值
* resultCode:结果码,结果码用于标识返回数据来自哪个新的Activity
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
//requestCode表示请求的标识,resultCode表示有数据
if(requestCode==MainActivity.REQUEST && resultCode==RESULT_OK){
String str="账号"
+data.getStringExtra(RequestActivity.KEY_USER_ID)+"\n"
+"密码"
+data.getStringExtra(RequestActivity.KEY_USER_PASSWORD);
tv01.setText(str);
}
Toast.makeText(this, "requestCode="+requestCode+":"+"requestCode="+requestCode, Toast.LENGTH_LONG).show();
}
/*
* 当新的Activity关闭后,新Activity返回的数据通过Intent进行传递,android平台会调用
* 前面的MainActivity的onActivityResult()方法,把存放了返回数据的Intent作为第三个
* 输入参数传入,在onActivityResult()方法中使用第三个输入参数可以取出新Activity
* 返回的数据。
*/
新建的Activity命名为RequestActivity,其对应的布局文件为:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<EditText
android:id="@+id/et01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<EditText
android:id="@+id/et02"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/btn01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="StartActivityForResult"
/>
</LinearLayout>
活动代码如下:
public class RequestActivity extends Activity implements OnClickListener{
private Button btn01;
private EditText et01;
private EditText et02;
public static final String KEY_USER_ID="KEY_USER_ID";
public static final String KEY_USER_PASSWORD="KEY_USER_PASSWORD";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.requestactivity);
btn01=(Button)findViewById(R.id.btn01);
et01=(EditText)findViewById(R.id.et01);
et02=(EditText)findViewById(R.id.et02);
btn01.setOnClickListener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.btn01:
//数据是使用intent返回
Intent intent=new Intent();
//把返回的数据存入Intent
intent.putExtra(KEY_USER_ID, et01.getText().toString());
intent.putExtra(KEY_USER_PASSWORD, et02.getText().toString());
/*
* 在MainActivity中,使用startActivityForResult(Intent intent,int requestCode)
* 方法打开新的Activity,新的Activity关闭前需要向MainActivity返回数据,这时
* 需要使用系统提供的setResult(int resultCode,Intent data)方法实现。
*/
//设置返回数据
/*
* setResult()方法的第一个参数值可以根据业务需求自己定义,下面的RESULT_OK是系统
* Activity类定义的一个常量,值为-1。
*/
setResult(RESULT_OK,intent);
//关闭Activity
finish();
break;
}
}
}
- startActivityForResult 用法
- startActivityForResult 用法
- startActivityForResult用法
- startActivityForResult 用法
- startActivityForResult 用法
- startActivityForResult 用法
- startActivityForResult用法
- startActivityForResult用法
- startActivityForResult()用法
- startActivityForResult用法
- startActivityForResult用法
- startActivityForResult用法
- startActivityForResult用法
- startActivityForResult用法
- startActivityForResult()用法
- startactivityforresult用法
- startActivityForResult用法
- startActivityForResult的用法
- 算法学习(五)求解500万以内的亲和数,连续数据映射为数组
- 蛤玮的魔法
- c#学习笔记五 面向对象编程的基本概念 接口 继承和多态
- hdu 1078 dfs+记忆化搜索
- 素数判定 扳子
- startActivityForResult()用法
- 58_捕获全局未捕获异常
- Java运算符问题
- 白帽子讲web安全 读书笔记
- 关于main函数
- android TextView 笔记
- ODMRP
- C++语法细节笔记
- java毕向东听课笔记17(字符串1)