确定数据是否通过意图发送
Determine if data was sent via intent
有什么方法可以确定是否通过 Intent 发送了特定的布尔值?换句话说,我知道如何通过 Intent 发送数据以及如何读回数据,但我想知道是否发送了数据。
当前的 getBooleanExtra
方法需要一个默认值,所以我无法检查它是否不是使用此方法发送的。
我目前有这个:
showNavigationDrawer = getIntent().getBooleanExtra(Extras.EXTRA_SHOW_NAVIGATION_DRAWER, false);
如果根本没有设置 Extras.EXTRA_SHOW_NAVIGATION_DRAWER
值,我想做一些额外的工作。显然,如果我收到 true
,则表示已发送,但是如果我收到 false
,则无法判断。
这可以通过提取意向包来完成:
Bundle b = getIntent().getExtras();
boolean hasNavDrawerSetting = b.containsKey(Extras.EXTRA_SHOW_NAVIGATION_DRAWER);
if (hasNavDrawerSetting) {
showNavigationDrawer = getIntent().getBooleanExtra(Extras.EXTRA_SHOW_NAVIGATION_DRAWER, false);
} else {
showNavigationDrawer = getResources().getBoolean(R.bool.hasSideMenu);
}
如果你真的想检查你的价值是否到来,那么你可以借助 Bundle 对象。您可以通过 bundle 对象传递布尔值。如果 bundle 对象是 null 则在下一个 activity 中不会收到任何值。但是,如果它不为 null,那么如果您将布尔参数放在 bundle 中,那么您肯定只会收到布尔参数的值 。根据您设置的值,它可能是 true 或 false。下面我提供了两个代码片段。一个用于调用 activity,另一个用于调用 activity.
正在调用 Activity -->
Intent intent = new Intent(this,Experimental.class);
Bundle b = new Bundle();
b.putBoolean("key",true);
startActivity(intent.putExtra("bundle",b));
已调用 Activity -->
setContentView(R.layout.experimental);
Bundle b = getIntent().getBundleExtra("bundle");
if(b != null){
Log.d("Value",String.valueOf(b.getBoolean("key",false)));
}
希望能帮到你。
有什么方法可以确定是否通过 Intent 发送了特定的布尔值?换句话说,我知道如何通过 Intent 发送数据以及如何读回数据,但我想知道是否发送了数据。
当前的 getBooleanExtra
方法需要一个默认值,所以我无法检查它是否不是使用此方法发送的。
我目前有这个:
showNavigationDrawer = getIntent().getBooleanExtra(Extras.EXTRA_SHOW_NAVIGATION_DRAWER, false);
如果根本没有设置 Extras.EXTRA_SHOW_NAVIGATION_DRAWER
值,我想做一些额外的工作。显然,如果我收到 true
,则表示已发送,但是如果我收到 false
,则无法判断。
这可以通过提取意向包来完成:
Bundle b = getIntent().getExtras();
boolean hasNavDrawerSetting = b.containsKey(Extras.EXTRA_SHOW_NAVIGATION_DRAWER);
if (hasNavDrawerSetting) {
showNavigationDrawer = getIntent().getBooleanExtra(Extras.EXTRA_SHOW_NAVIGATION_DRAWER, false);
} else {
showNavigationDrawer = getResources().getBoolean(R.bool.hasSideMenu);
}
如果你真的想检查你的价值是否到来,那么你可以借助 Bundle 对象。您可以通过 bundle 对象传递布尔值。如果 bundle 对象是 null 则在下一个 activity 中不会收到任何值。但是,如果它不为 null,那么如果您将布尔参数放在 bundle 中,那么您肯定只会收到布尔参数的值 。根据您设置的值,它可能是 true 或 false。下面我提供了两个代码片段。一个用于调用 activity,另一个用于调用 activity.
正在调用 Activity -->
Intent intent = new Intent(this,Experimental.class);
Bundle b = new Bundle();
b.putBoolean("key",true);
startActivity(intent.putExtra("bundle",b));
已调用 Activity -->
setContentView(R.layout.experimental);
Bundle b = getIntent().getBundleExtra("bundle");
if(b != null){
Log.d("Value",String.valueOf(b.getBoolean("key",false)));
}
希望能帮到你。