如何从两个不同的UI使用不同的图标打开主要活动
我有一个主要活动包括地图的应用程序。 我想在我的主屏幕启动器上创建两个图标,它们都会打开相同的主要活动,但在地图上使用不同的用户界面。如何从两个不同的UI使用不同的图标打开主要活动
例如: 如果我按下图标A,应用程序将在地图上打开一个晶圆厂,如果我按下图标B,应用程序将在地图上没有晶圆厂的情况下打开。
首先你需要添加第二个启动器意图到你的清单。
<activity
android:name=".yourpackage.MapActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<meta-data android:name="visibility" android:value="0"/>
</activity>
<activity-alias
android:name=".MapWithoutFabActivity"
android:targetActivity=".yourpackage.MapActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<meta-data android:name="visibility" android:value="1"/>
</activity-alias>
接下来我们需要修改我们的地图MapActivity以准备更改晶圆厂按钮的可见性。
public class MapActivity extends AppCompatActivity {
protected int fabVisibility = View.VISIBLE;
@Override protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Hope this method works.
Bundle bundle = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA).metaData;
int visibility = Integer.valueOf(bundle.getString("visibility"));
fab.setVisibility(visibility);
}
protected void onNewIntent(Intent intent) {
Bundle bundle = getPackageManager().getApplicationInfo(getPackageName(),
PackageManager.GET_META_DATA).metaData;
int visibility = Integer.valueOf(bundle.getString("visibility"));
fab.setVisibility(visibility);
}
祝您好运了
埃姆雷
修复了一些失败。请再次检查 –
如果应用程序已经打开,它会从前一个屏幕重新启动。意思是,如果您使用图标A打开应用程序,则如果您单击B,屏幕A会在应用程序显示之前的状态时显示。 – Eselfar
他们都将被打开堆叠。他们是独立的。 –
只是处理的Fab的可见性消失了,可见不同的图标按或你可以在一个活动的两个碎片,并推出根据您的图标上按需要 –
尝试检查了这一点https://developer.android.com/guide/topics/ui/shortcuts.html似乎是你想要的,但它是最新版本,我认为 – Cruces
我不知道这是否工作,但这也似乎是你需要什么https://stackoverflow.com/questions/43361498/android-quick-shortcuts-passing-intent-extraor-some-data-in-shortcutsx毫升 – Cruces