这篇文章主要给大家介绍了机器人中startActivityForResult()的用法,文中给出了详细的介绍与示例代码,相信对大家的理解和学习具有一定参考借鉴价值,有需要的朋友们下面来一起看看吧。
前言
安卓开发中一个很基础的操作就是打开一个活动,另一个很必要的操作就是,打开一个活动,在打开的活动中操作之后并获得返回结果。
两个 Activity
为了演示这个操作,我们需要两个活动:主要活动和其他活动,在主要活动中通过目的启动其他活动,并获得其他活动结束后返回的结果,例子仅作演示,为了方便,我直接在Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)文件中定义了控件,就不写布局文件了。
MainActivity.java
包网。conw。意图测试;
导入安卓。app。活动;
导入安卓。内容。意图;
导入安卓。OS。捆绑;
导入安卓。查看。查看;
导入安卓。小部件。按钮;
导入安卓。小部件。编辑文本;
导入安卓。小部件。线性布局;
公共类主要活动扩展活动实现视图OnClickListener {
私有编辑文本编辑文本
私人按钮按钮;
public static int REQUEST _ CODE=1;
@覆盖
受保护的void onCreate(Bundle saved instancestate){
超级棒。oncreate(savedInstanceState);
线性布局layout=新建线性布局(this);
editText=new editText(this);
按钮=新按钮(这个);
按钮。settext(' Main ');
按钮。setonclicklistener(this);
布局。添加视图(editText);
layout.addView(按钮);
设置内容视图(布局);
}
@覆盖
公共void onClick(视图五){
意图意图=新的意图(这个,其他活动。类);
intent.putExtra('text ',editText.getText().toString());
startActivityForResult(intent,REQUEST _ CODE);
}
@覆盖
受保护的活动结果无效(int请求代码、int结果代码、意向数据){
超级棒。关于活动结果(请求代码、结果代码、数据);
if(请求代码==请求代码结果代码==其他活动.结果代码){
编辑文本。settext(数据。getstring extra(' text ');
}
}
}
OtherActivity.java
包网。conw。意图测试;
导入安卓。app。活动;
导入安卓。内容。意图;
导入安卓。OS。捆绑;
导入安卓。查看。查看;
导入安卓。小部件。按钮;
导入安卓。小部件。编辑文本;
导入安卓。小部件。线性布局;
公共类其他活动扩展活动工具视图OnClickListener {
私有编辑文本编辑文本
私人按钮按钮;
public static int RESULT _ CODE=1;
@覆盖
受保护的void onCreate(Bundle saved instancestate){
超级棒。oncreate(savedInstanceState);
线性布局layout=新建线性布局(this);
editText=new editText(this);
按钮=新按钮(这个);
button.setText('其他');
按钮。setonclicklistener(this);
布局。添加视图(editText);
layout.addView(按钮);
设置内容视图(布局);
editText.setText(getIntent().getstring extra(' text ');
}
@覆盖
公共void onClick(视图五){
Intent Intent=new Intent();
intent.putExtra('text ',editText.getText().toString());
setResult(RESULT_CODE,intent);
finish();
}
}
整个代码的执行逻辑如下:
1、两个活动的代码就是这样的,当主要活动中的纽扣被触发onClick()事件后,把主要活动中的编辑文本的内容发给了其他活动。
2、其他活动打开并初始化好控件后,把编辑文本的内容设置为主要活动发过来的内容。
3、当其他活动中的纽扣被触发onClick()事件后,把其他活动中的编辑文本的内容返回给主要活动。
4、当返回到主要活动时,会执行ononActivityResult()方法的内容,判断如果请求代码和结果代码无误后,把主要活动中的编辑文本的内容改为其他活动返回的结果。(这里判断了请求代码和结果代码,所以其他活动通过背部键返回时,主要活动的内容不会改变)
所以结果就是,当这两个活动以这种方式打开时,其中的EditText的内容是同步的,当一个活动发生变化时,另一个活动中也会发生变化。
总结
好了,这就是Android中的startActivityForResult()的全部内容。希望本文的内容能给Android开发者带来一些帮助。有问题可以留言交流。谢谢你的支持。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。