我怎样才能在两个不同的活动中获得这些意图值

时间:2018-05-14 06:20:31

标签: android

const routeConfig = {
  method: 'POST',
  path: '/user',
  config: {
    validate: {
      payload: {
        firstName: Joi.string().required().error(new Error('firstName is required')),
      }
    },
    handler
  }
}

6 个答案:

答案 0 :(得分:1)

您必须创建两个Intents才能执行此操作。

Intent a = new Intent(MapsActivity.this, Abc.class);
a.putExtra("customer_id", title);
startActivity(a);

Intent b = new Intent(MapsActivity.this, <service-name>.class);
b.putExtra("customer_id", title);
startService(b);

在您的活动中,按以下方式访问它:

@Override
 protected void onCreate(Bundle savedInstanceState) {
    ...
    int customerId = getIntent().getIntExtra("customer_id", 0);
    ...
 }

在您的服务访问中,如下所示:

 @Override
  public int onStartCommand(Intent intent, int flags, int startId) {
      final int customerId = intent.getIntExtra("customer_id",0);
      return Service.START_NOT_STICKY;
  }

答案 1 :(得分:0)

试试这个:

Bundle bundle = getIntent().getExtras();
if (bundle != null) { 
//bundle.getString("customer_id")...
}

答案 2 :(得分:0)

您可以像这样获得您传递的数据

Intent intent = getIntent();
int value = intent.getIntExtra("customer_id", 0);

价值将保留您的客户ID。

答案 3 :(得分:0)

Intent intent = new Intent(MapsActivity.this, Abc.class);
intent.putExtra("customer_id", title);
startActivity(intent);

intent = new Intent(MapsActivity.this, <service-name>.class);
intent.putExtra("customer_id", title);
startService(intent);

像这样,您可以重复使用一个Intent变量来创建两个实例,您可以使用它将customer_id传递给abc和您的服务。

答案 4 :(得分:0)

如果您想首先在两个不同的活动中获取值,您必须将值放在两个不同的意图中,这样您就可以在两个活动中获取值。

for Intent中的put值:

Intent a = new Intent(MapsActivity.this, Abc.class);
a.putExtra("customer_id", title);
startActivity(a);

Intent b = new Intent(MapsActivity.this, Xyz.class);
b.putExtra("customer_id", title);
startActivity(b);

要从意图获取值,请尝试:

Bundle bundle = getIntent().getExtras();
if (bundle != null) { 
//bundle.getString("customer_id")...
}

答案 5 :(得分:0)

我建议你应该使用SharedPreferences,这对你来说会更方便,两个活动在两个不同的活动中获得相同的价值。

SharedPreferences允许活动和应用程序以键值对的形式保留首选项,类似于Map,即使用户关闭应用程序也会持续存在。

Android将SharedPreferences设置存储为DATA / data / {application package}目录下的shared_prefs文件夹中的XML文件。可以通过调用Environment.getDataDirectory()获取DATA文件夹。

Here is the tutorial.

有关文档,请参阅here

<强>初始化

我们需要一个编辑器来编辑和保存共享首选项中的更改。以下代码可用于获取共享首选项。

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode Editor editor = pref.edit();

存储数据

使用editor.commit()来保存对共享首选项的更改。

editor.putBoolean("key_name", true); // Storing boolean - true/false
editor.putString("key_name", "string value"); // Storing string
editor.putInt("key_name", "int value"); // Storing integer
editor.putFloat("key_name", "float value"); // Storing float
editor.putLong("key_name", "long value"); // Storing long

editor.commit(); // commit changes

检索数据 可以通过调用getString()按如下方式从保存的首选项中检索数据:

pref.getString("key_name", null); // getting String
pref.getInt("key_name", null); // getting Integer
pref.getFloat("key_name", null); // getting Float
pref.getLong("key_name", null); // getting Long
pref.getBoolean("key_name", null); // getting boolean

清除或删除数据

remove(“key_name”)用于删除该特定值。

clear()用于删除所有数据。

editor.remove("name"); // will delete key name
editor.remove("email"); // will delete key email

editor.commit(); // commit changes

editor.clear();
editor.commit(); // commit changes

我希望这有帮助,如果不是答案,请忽略这个答案。 谢谢。