Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Intent中提取第一个参数?_Java_Android - Fatal编程技术网

Java 如何从Intent中提取第一个参数?

Java 如何从Intent中提取第一个参数?,java,android,Java,Android,我想从Intent方法中提取第一个参数。我怎么能这么做 例如,BroadcastCodes.LOGIN\u BROADCAST是唯一的字符串参数 Utilities.sendLocalBroadcastActivity(new Intent(BroadcastCodes.LOGIN_BROADCAST, null, ServerConnectionManager.this, LoginActivity.class)); 在MainActivity类中,将包括

我想从Intent方法中提取第一个参数。我怎么能这么做

例如,BroadcastCodes.LOGIN\u BROADCAST是唯一的字符串参数

Utilities.sendLocalBroadcastActivity(new Intent(BroadcastCodes.LOGIN_BROADCAST, null,
                  ServerConnectionManager.this, LoginActivity.class));
在MainActivity类中,将包括:

@Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    progressInfo = findViewById(R.id.splash_screen_progress_info);

    Utilities.startService(this, StickyService.class);

        localBroadcastManager = LocalBroadcastManager.getInstance(getApplicationContext());

        broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

        // How should I extract the first parameter to compare and call other function.

        String broadcast = intent.getStringExtra("?");

        logger.info("Received broadcast: " + broadcast);
        if(?)
        {
          handleConnectBroadcast(broadcast);
        }
      }
    };
    connectionMessagesHandler = new ConnectionMessagesHandler();
  }

这是一个如何提取意图数据的示例:

Intent intent = getIntent();
String age= intent.getStringExtra("age");
String name = intent.getStringExtra("name");
在您的代码中,它将是:

public void onReceive(Context context, Intent intent) {
        String broadcast = intent.getStringExtra("YOUR_EXTRA_NAME");
在您的评论案例中,您应该添加:

if (intent.getAction().equals(Constants.LOGIN_BROADCAST)){
//code
}

如果我理解,您希望获取第一个参数,即
BroadcastCodes.LOGIN\u BROADCAST
,这是操作参数

使用
intent.getAction()


希望有帮助

我发送一个
BroadcastCodes.LOGIN\u BROADCAST
,它是另一个带有
LOGIN\u BROADCAST
字符串参数的类。如何提取此字符串参数?。我应该只写“BroadCast”吗?我有很多带有BroadcastCodes的变量,所以我不想用诸如
LOGIN\u BroadCast
之类的变量来指定。我只需要读取从method参数发送的第一个字符串并调用其他方法。我认为这是您必须为第一个参数指定要使用哪个事件的唯一方法是
getAction()
?是的。请参阅构造函数:Intent(字符串操作、Uri、Context packageContext、Class cls)。如果您想传递和检索额外的内容,必须像@solamente answer一样使用它。问题不重复或效率不高。为什么减少-1?
Intent intent = new Intent(ABC.this,XYZ.class);
intent.putExtra("any_key_name","any_value");
startActivity(intent)