startActivityForResult和setResult
2015-11-05 09:55
507 查看
通过startActivityForResult和setResult获得返回值
startActivityForResult
如下是一个例子:
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,OtherActivity.class); intent.putExtra("first",first.getText().toString()); intent.putExtra("second",second.getText().toString()); startActivityForResult(intent, requestCode); } });
其中
startActivityForResult的两个参数分别是,获得传递的意图以及确定返回值是哪一个方法发起的。
同时必须声明onActivityResult
方法对返回的值进行处理。
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode == RESULT_OK){ if(requestCode == 1){ int three = Integer.parseInt(data.getStringExtra("result")); result.setText(String.valueOf(three)); } }else{ result.setText("结果错误"); } // result.setText("dasdf"); Toast.makeText(this,"ceshiyong",Toast.LENGTH_SHORT).show(); }
其中三个参数的含义:
1.
requestCode这个是
intent发起类中确定的参数用来确定是哪个方法发起的
2.
resultCode这个是
setResult返回的已确定是哪个类返回的参数
3.
data这个是
setResult返回的参数
setResult
例子如下:
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(OtherActivity.this,MainActivity.class); intent.putExtra("result",String.valueOf(editText.getText())); //startActivity(intent); setResult(RESULT_OK,intent); finish(); } });
需要注意的是在结束后一定要
finish()结束这个Activity
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories