1

我需要帮助,请用户选择首先启动哪个活动....

我有 3 个活动和设置活动,我希望用户选择一个活动首先启动并保存。

如果有人指导我找到正确的代码或示例,我将不胜感激......

<activity
    android:label="@string/app_name"
    android:screenOrientation="portrait"
    android:name="com.example.Test" 
    android:theme="@style/Theme.FullScreen">
    <intent-filter >
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

当我启动一个应用程序时,总是从 Test.class 开始,我如何设置用户选择哪个开始?

提前致谢..

4

2 回答 2

4

创建一个Activity作为应用程序的主要入口点。该活动将检查用户是否选择了默认活动。如果他有,那么此活动将启动该活动并自行关闭。否则,它将提示用户选择默认活动。

示例代码(您需要进行一些修改以满足您的要求):

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final SharedPreferences sharedPref = getPreferences(MODE_PRIVATE);
        int choice = sharedPref.getInt("default_activity", -1);

        if (choice == -1) {
            // show the option to choose the default activity to the user
            // e.g. dialog with list, then save the corresponding choice to
            // shared preference
            String[] activities = { "Activity 1", "Activity 2", "Activity 3" };

            AlertDialog.Builder builder = new Builder(this);
            builder.setAdapter(
                new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, activities),
                new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    SharedPreferences.Editor editor = sharedPref.edit();
                    editor.putInt("default_activity", which);
                    editor.commit();
                    launchActivity(which);
                }
                }).show();
        } else {
            // start the activity and close this activity
            launchActivity(choice);
        }
    }

    private void launchActivity(int choice) {
        switch (choice) {
        case 0:
            startActivity(new Intent(this, Activity1.class));
            break;
        case 1:
            startActivity(new Intent(this, Activity2.class));
            break;
        case 2:
            startActivity(new Intent(this, Activity3.class));
            break;
        }
        finish();
    }
}
于 2013-11-06T08:31:10.693 回答
0

创建临时活动。在此活动中,用户可以选择活动名称。保存选定的活动名称(使用此参数“活动”)(例如;FirstActivity、SecondActivity、ThirdActivity)。

getSharedPreferencesStringValue =>写这个函数

算法并在临时活动中控制它(在 onCreate 函数中)。

1-如果存在名称为“活动”的值,则再次对其进行控制。

 1.1-If getSharedPreferencesStringValue("activity").equals("FirstActivity")

  -Redirect FirstActivity
 1.2-If getSharedPreferencesStringValue("activity").equals("SecondActivity")

  -Redirect SecondActivity
 1.2-If getSharedPreferencesStringValue("activity").equals("ThirdActivity")

  -Redirect ThirdActivity

2-如果没有名称为“活动”的值

 2.1-Open temp activity

 2.2-Show activity list

 2.3-After than user chose an activity, save it preferences

 2.4-And open that activity

最好的祝福,

于 2013-11-06T08:32:35.897 回答