基于android startActivityForResult的学习心得总结

 更新时间:2013年05月28日 11:46:01   投稿:jingxian  
本篇文章是对android中的startActivityForResult进行了详细的分析介绍,需要的朋友参考下

从昨晚到现在终于调试通了一个startActivityForResult的例子,网上要么有些说的太复杂了,要么说的含糊,搞的我走了很多弯路,所以写篇心得。
在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,还同时返回一些子模块完成的数据交给主Activity处理。  用startActivity启动主界面是一个新的Intent实例,而访问的主界面还在activity栈的下面没有调出来,这样做的一个最大的问题是,回不到原界面就不能多个子功能模块共同来给主界面提供数据或服务了。这个时候就要用startActivityForResult了!
目的: MainActivity.java 是主界面,SecondActivity.java 是子功能模块,要从main启动second,second收到main发来的数据干完活之后,按按键OK会把结果汇报给main,同时自己关闭返回到main。
具体实现:
分四部分:

复制代码 代码如下:

class sendButtonListen implements OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
String str = "dajia hao ";
intent.putExtra("send", str);
intent.setClass(MainActivity.this, SecondActivity.class);
startActivityForResult(intent, 0);
}
    }

2,在SecondActivity里面的OnCreate函数里,接收来自main里的intent发来的数据。
复制代码 代码如下:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        okButton = (Button)findViewById(R.id.ok); //按这个ok按键,会返回到main。      
        Intent intent = getIntent();       
        String getStr = intent.getStringExtra("send");
        TextView tv = (TextView)findViewById(R.id.sendText);
        tv.setText(getStr);
        Toast.makeText(SecondActivity.this,
        "从MainActivity传回来的数据是:"+getStr,
        Toast.LENGTH_SHORT).show();
        okButton.setOnClickListener(new okButtonListen());        
    
       
    }

复制代码 代码如下:

 class okButtonListen implements OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
Intent sendIntent = new Intent(SecondActivity.this, MainActivity.class);//这种方法今天才学的,记下!方便这样写,这块没有给Inent绑定
       Bundle bundle = new Bundle();
       bundle.putString("send", "大家好");
       sendIntent.putExtras(bundle);
       SecondActivity.this.setResult(RESULT_OK, sendIntent);
       SecondActivity.this.finish();
}

4,返回到main后,main要接收second发来的数据。在MainActivity里复写它的OnActivityResult方法。
复制代码 代码如下:

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
Bundle bundle = data.getExtras();
String str = bundle.getString("send");
Toast.makeText(MainActivity.this,
"我回来的,第二个activity传回的数据是:"+str,
Toast.LENGTH_SHORT).show();
}
}

注意:这里面不要再新建Intent,onActivityResult有三个参数,第三个参数就是Intent,只需要用他做参数就行了。

相关文章

  • Android监听输入法弹窗和关闭的实现方法

    Android监听输入法弹窗和关闭的实现方法

    用过ios的都知道ios上输入法关闭的同时会自动关闭输入框,那么在android上如何实现监听输入法弹出和关闭呢?接下来通过本文给大家分享一种可靠的实现方式
    2016-11-11
  • 浅析Android 快速实现图片压缩与上传功能

    浅析Android 快速实现图片压缩与上传功能

    在Android对手机相册中的图片的压缩和上传到服务器上,这样的功能在每个app开发中都会有这样的需求.所以今天就对android端怎么快速实现图片压缩和上传进行简单的分析
    2017-08-08
  • android实现简单圆弧效果

    android实现简单圆弧效果

    这篇文章主要为大家详细介绍了android实现简单圆弧效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • android编程之XML文件解析方法详解(附源码)

    android编程之XML文件解析方法详解(附源码)

    这篇文章主要介绍了android编程之XML文件解析方法,结合实例形式较为详细的分析了Android解析XML文件的sax、pull及Dom三种方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • 2021最新Android笔试题总结美团Android岗职能要求

    2021最新Android笔试题总结美团Android岗职能要求

    这篇文章主要介绍了2021最新Android笔试题总结以及美团Android岗职能要求,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Android设置默认锁屏壁纸接口的方法

    Android设置默认锁屏壁纸接口的方法

    这篇文章主要介绍了Android默认锁屏壁纸接口的设置方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 安卓(Android)实现3DTouch效果

    安卓(Android)实现3DTouch效果

    3DTouch是什么效果的大家应该都知道了。本文将介绍在Android中如何实现3DTouch的效果,有需要的可以参考学习。
    2016-08-08
  • DrawerLayout结合Tollbar实现菜单侧滑效果

    DrawerLayout结合Tollbar实现菜单侧滑效果

    这篇文章主要为大家详细介绍了DrawerLayout结合Tollbar实现菜单侧滑效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Android编程实现在adapter中进行数据操作的方法

    Android编程实现在adapter中进行数据操作的方法

    这篇文章主要介绍了Android编程实现在adapter中进行数据操作的方法,结合实例形式分析了Android基于adapter操作数据的相关步骤与实现技巧,需要的朋友可以参考下
    2017-02-02
  • Android自定义View实现绘制水波浪温度刻度表

    Android自定义View实现绘制水波浪温度刻度表

    这篇文章主要为大家详细介绍了Android如何利用自定义View实现一个水波浪温度刻度表,文中的示例代码讲解详细,感兴趣的小伙伴可以尝试一下
    2022-11-11

最新评论