首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Android无法区分意图

Android无法区分意图
EN

Stack Overflow用户
提问于 2013-12-18 23:44:53
回答 2查看 73关注 0票数 0

在我的主活动中(所有事情都发生在我的应用程序中),我现在只调用了另外两个活动,这两个活动通过按下按钮来回调我的MainActivity。我如何在我的MainActivity中区分这两种意图?根据我在两个独立活动中所做的事情,我有一些独立的操作要预先准备。

这是我尝试过的:

代码语言:javascript
代码运行次数:0
运行
复制
Intent intent = getIntent();
String s_message = intent.getStringExtra(AppSettings.EXTRA_MESSAGE);
String f_message = intent.getStringExtra(ViewFavorites.EXTRA_MESSAGE);

if(s_message != null) {
 //do something
} else if (f_message != null) {
 //do something
}

但是,当我运行我的应用程序时,我发现当退出这两个活动时,他们正在预定义方法,我不希望他们to...am,我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2013-12-18 23:46:50

对每个意图设置不同的操作,然后使用if(getIntent().getAction().equals( ACTION ))来区分意图。

代码语言:javascript
代码运行次数:0
运行
复制
public class MainActivity extends Activity {

public static final String ACTION_ONE = "com.yourpackage.ACTION_ONE";
public static final String ACTION_TWO = "com.yourpackage.ACTION_TWO";

@Override
protected void onCreate(Bundle savedInstanceState){
     super.onCreate(savedInstanceState);

     Intent intent = getIntent();
     if(intent.getAction() != null){
         if(intent.getAction.equals(ACTION_ONE){
            //DO SOMETHING
         } else if (intent.getAction.equals(ACTION_TWO){
            //DO SOMETHING
         }
     }
}
.....

}

然后,当你带着一个意图开始你的主要活动时:

代码语言:javascript
代码运行次数:0
运行
复制
Intent intent = new Intent(MY_CURRENT_CONTEXT, MainActivity.class);  //Or MainActivity subclass   

添加

代码语言:javascript
代码运行次数:0
运行
复制
intent.setAction(ACTION_ONE);

或任何特定于您的意图试图实现的操作。

票数 0
EN

Stack Overflow用户

发布于 2013-12-18 23:51:24

我所做的只是在我传递的Intent中设置一个Extra,然后进行比较。就像这样。创建Intent时,添加要比较的Extra

代码语言:javascript
代码运行次数:0
运行
复制
intent.putExtra("source", "appSettings");

然后在你的Activity中检查这个值是什么

代码语言:javascript
代码运行次数:0
运行
复制
Intent intent = getIntent();
String source  = intent.getStringExtra("source");  // get that value here

if(s_message != null) {
    if ("appSettings".equals(source)){
    //do something
    } else if (viewFavorites.equals(source)) {
      //do something else
    }
}

就如何分配Extra而言,您可以使用它的变体,但这是一个简单的示例,对我来说工作得很好,特别是当只有几个Activites调用它的时候。

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

https://stackoverflow.com/questions/20662441

复制
相关文章

相似问题

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