如何从具有不同 ui 的两个单独图标打开主 activity
How to open main activity from two separate icons with different ui
我有一个主要 activity 包含地图的应用程序。
我想在我的主屏幕启动器上创建两个图标,它们都将打开相同的主 activity 但在地图上具有不同的 UI。
例如:
如果我按下图标 A,应用程序将在地图上打开并显示晶圆厂,如果我按下图标 B,应用程序将在地图上没有晶圆厂的情况下打开。
首先,您需要将第二个启动器 Intent 添加到您的清单中。
<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 以准备更改 fab 按钮的可见性。
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);
}
祝你好运
埃姆雷
我有一个主要 activity 包含地图的应用程序。 我想在我的主屏幕启动器上创建两个图标,它们都将打开相同的主 activity 但在地图上具有不同的 UI。
例如: 如果我按下图标 A,应用程序将在地图上打开并显示晶圆厂,如果我按下图标 B,应用程序将在地图上没有晶圆厂的情况下打开。
首先,您需要将第二个启动器 Intent 添加到您的清单中。
<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 以准备更改 fab 按钮的可见性。
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);
}
祝你好运
埃姆雷