startActivityForResult基本用法
来源:互联网 发布:景区电子数据采集方式 编辑:程序博客网 时间:2024/05/16 02:37
对于初学者,如果一个界面A跳到界面B,B要返回数据,很多喜欢在OnResume 里刷新界面,这是不科学的,应该用startActivityForResult,对于新启动的界面要返回数据的话,这样做才是合理的。传参requestCode ,代表你的请求码,返回的时候用来判断是不是你要求返回的数据。第二个界面(就是你启动的界面)在关闭之前要做setResult(RESULT _OK,intent),intent里放入你要返回的数据。最后在开始界面(第一个界面)回调onActivityResult,拿到返回数据,刷新即可。代码如下:
第二个界面:
最后记得在manifest文件注册SecondActivity就好了。
xml:activity_main
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:onClick="startActivity" android:text="传值" /></RelativeLayout>第一个界面:
public class MainActivity extends ActionBarActivity {private TextView returnText ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);returnText = (TextView)findViewById(R.id.text);}public void startActivity(View view) {startActivityForResult(new Intent(MainActivity.this,SecondActivity.class), 1);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);switch(requestCode){case 1:if(resultCode == RESULT_OK){String returnData = data.getStringExtra("return");returnText.setText(returnData);}break;}}}
第二个界面:
public class SecondActivity extends Activity {private TextView returnText ;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState); setContentView(R.layout.activity_main); returnText = (TextView)findViewById(R.id.text); returnText.setText("return");}public void startActivity(View view){Intent intent = new Intent();intent.putExtra("return", "I love you !");setResult(RESULT_OK,intent);finish();}}
最后记得在manifest文件注册SecondActivity就好了。
0 0
- startActivityForResult基本用法
- startActivityForResult的基本用法
- Android startActivityForResult基本用法
- Android中StartActivityForResult的基本用法
- startActivityForResult 用法
- startActivityForResult 用法
- startActivityForResult用法
- startActivityForResult 用法
- startActivityForResult 用法
- startActivityForResult 用法
- startActivityForResult用法
- startActivityForResult用法
- startActivityForResult()用法
- startActivityForResult用法
- startActivityForResult用法
- startActivityForResult用法
- startActivityForResult用法
- startActivityForResult用法
- 在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案
- Jmeter Http并发测试中,可能出现部分线程陷入无限循环
- tomcat的server.xml详解
- apache shiro与spring整合、动态filterChainDefinitions、以及认证、授权
- xss注入和防范的方法
- startActivityForResult基本用法
- 深入理解Ajax结合JSONP实现跨域请求
- 单一职责和里氏替换
- 初步使用Instruments
- Android屏幕适配全攻略(最权威的官方适配指导)
- PHP以及js识别android/ios系统代码参考
- web项目不用现有缓存技术,应用单例模式,将字典等内容放到服务器缓存
- ANT出现“警告: 编码 GBK 的不可映射字符”解决方法
- java.time时间/日期API