首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送和接收请求代码Android活动

发送和接收请求代码Android活动
EN

Stack Overflow用户
提问于 2016-08-29 22:21:12
回答 3查看 3.2K关注 0票数 0

日安。我想通过我自己的活动发送和接收请求代码,而不是像通常那样使用意图。例如,联系人活动或任何其他外部ones.Lets说我有一些BuyCoins活动,我像这样启动它

代码语言:javascript
复制
 Intent intent = new Intent(getApplicationContext(), BuyCoins.class);
    startActivityForResult(intent, BUY_COINS_REQUEST_CODE);

所以,通过谷歌搜索,每个人都不是以这种方式使用意图,但我不想在这种情况下使用意图,我想默认使用它。在买硬币课上,每个人都说我应该这样做

代码语言:javascript
复制
 setResult(RESULT_OK);

但是我从哪里得到BUY_COINS_REQUEST_CODE?我如何从BuyCoins类返回请求代码?有人能告诉我吗?

EN

回答 3

Stack Overflow用户

发布于 2016-08-29 22:39:51

我找到了我自己的答案的解决方案though.Keep一个常量类,或者无论您如何为请求代码want.Make一个最终的静态公共变量,像往常一样将其传递给startActivityForResult(),并启动所需的activity.The技巧在这里now.Whenever您想要完成已启动的所需的活动,以便在finish()调用此方法之前将结果返回给该活动的启动器

代码语言:javascript
复制
setResult(Constants.MY_OWN_REQUEST_CODE, myOwnCreatedIntentData);

现在可以开始了,这意味着您现在可以在您的呼叫者活动中执行下一步

代码语言:javascript
复制
  @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case Constants.MY_OWN_REQUEST_CODE:
            if (data != null) {
                boolean someData= data.getExtras().getBoolean(Constants.SOME_DATA_KEY);
            }
            break;
    }
}

这就是你要做的

票数 0
EN

Stack Overflow用户

发布于 2016-08-29 22:41:14

BUY_COINS_REQUEST_CODE是声明为实例变量的常量整数值

final int BUY_COINS_REQUEST_CODE =101;//or any

SecondActivity

代码语言:javascript
复制
Intent intent=new Intent();  
setResult(FirstActivity.BUY_COINS_REQUEST_CODE ,intent);  
 finish();//finishing activity  

现在在FirstActivity

代码语言:javascript
复制
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode) {
        case :BUY_COINS_REQUEST_CODE 
            if (resultCode == BUY_COINS_REQUEST_CODE  && null != data) {

                //do something
            }
            break;
   }
}

希望能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2016-08-29 22:56:50

您的SecondActivity应按如下方式设置数据:

代码语言:javascript
复制
Intent intent=new Intent();
Intent.putExtra("coins","coins value");
 setResult(RESULT_OK,intent); finish();

//完成活动

在FirstActivity中覆盖onActvityResult方法,如下所示:

代码语言:javascript
复制
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case BUY_COINS_REQUEST_CODE : if (resultCode == RESULT_OK && null != data) { 
String coins= data.getStringExtra("coins"); 
} 
break; } }

希望它能帮助你解决问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39208568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档