繁体   English   中英

我可以根据用户偏好在启动时启动不同的活动吗?

[英]Can I launch different Activities on startup depending on user preferences?

我有一个ListActivity和一个MapActivity。 我想在用户在首选项窗口中选择的应用程序启动时启动其中一个活动。

到目前为止,我看到在应用程序启动时启动活动的唯一方法是使用...在应用程序清单文件中指定它。

  <activity android:name=".MyActiivty"
        android:label="@string/app_name">
     <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
  </activity>

我想我可能不得不开始一项活动,除了查看用户首选项之外什么都不做,然后启动ListActivity或MapActivity。 看起来像浪费一样,活动什么都不做,只能启动另一项活动。 在我的研究中,我没有找到解决这个问题的方法。 任何建议将不胜感激。

谢谢和问候,戴夫

首先,不要创建第三个活动。 只需将LAUNCHER Activity作为列表或映射,并在需要时调用setContentView()之前在onCreate()调用另一个(加上finish() )的startActivity() 这样,大约50%的时间,你正在开展正确的活动。

原则上,您可以让两个活动都具有LAUNCHER <intent-filter> ,仅启用一个。 但是,这不适用于桌面快捷方式,这些快捷方式将路由到特定活动(在制作快捷方式时恰好配置的那个)。 如果这不关心你,你可能会走这条路。 但是,尝试使用一些设备和自定义主屏幕进行测试 - 我不确定是否每个人都会立即接受您的更改。

我刚刚将以下代码添加到onCreate()方法中,它就像魅力一样。

    Intent intent;

    intent = new Intent(this, MyMap.class);
    startActivity( intent );
    finish();

对于新朋友(我),以下是戴夫的回答,以及我需要对AndroidManifest.xml进行的更改。

主要活动:

 Intent intent;

 intent = new Intent(this, DisplayMessageActivity.class);
 startActivity( intent );

更改为xml文件,来自 - > http://developer.android.com/training/basics/firstapp/starting-activity.html

AndroidManifest.xml中:

<activity
        android:name="com.mycompany.myfirstapp.DisplayMessageActivity"
        android:label="@string/title_activity_display_message"
        android:parentActivityName="com.mycompany.myfirstapp.MyActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.mycompany.myfirstapp.MyActivity" />
    </activity>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM