当前位置: 首页 > 知识库问答 >
问题:

如何根据条件选择启动活动

阴雪风
2023-03-14
RadioButton FourthGrade = (RadioButton) findViewById(R.id.grade_4th);


            FourthGrade.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent(CourseSelectionActivity.this, Home.class);
                    startActivity(intent);
                }
            });

共有1个答案

陶文林
2023-03-14

您可以创建一个“navigator”活动作为应用程序的入口点,如下所示:

public class NavigatorActivity extends AppCompatActivity {

    public static final String KEY_CHOICE = "choice";

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

        // fetch the choice of the user, or return -1 if there is no choice yet
        SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(this);
        int choice = prefs.getInt(KEY_CHOICE, -1);
        Intent intent = createIntentBasedOnChoice(this, choice);

        startActivity(intent);
        finish();
    }

    // this method returns an Intent based on the passed choice parameter
    public static Intent createIntentBasedOnChoice(Context context, int choice) {
        Intent intent;

        switch (choice) {
            case 1: {
                intent = new Intent(context, FirstActivity.class);
                break;
            }
            case 2: {
                intent = new Intent(context, SecondActivity.class);
                break;
            }
            case 3: {
                intent = new Intent(context, ThirdActivity.class);
                break;
            }
            case 4: {
                intent = new Intent(context, FourthActivity.class);
                break;
            }
            default: {
                // if there is no choice yet, start the ChoiceActivity
                intent = new Intent(context, ChoiceActivity.class);
                break;
            }
        }
        return intent;
    }
}

这将根据用户前面的选择导航到四个活动中的一个。如果用户尚未选择,它将导航到choiceactivity

ChoiceActivity的基本布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <RadioGroup
        android:id="@+id/group_choices"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <RadioButton
            android:id="@+id/button_choice1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="Choice 1" />

        <RadioButton
            android:id="@+id/button_choice2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Choice 2" />

        <RadioButton
            android:id="@+id/button_choice3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Choice 3" />

        <RadioButton
            android:id="@+id/button_choice4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Choice 4" />

    </RadioGroup>

    <Button
        android:id="@+id/button_submit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is my choice!" />
</LinearLayout>
public class ChoiceActivity extends AppCompatActivity {

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_choice);

        final RadioGroup choiceGroup = (RadioGroup) findViewById(
            R.id.group_choices);
        Button submitButton = (Button) findViewById(R.id.button_submit);

        submitButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int choice;

                switch (choiceGroup.getCheckedRadioButtonId()) {
                    case R.id.button_choice1: {
                        choice = 1;
                        break;
                    }
                    case R.id.button_choice2: {
                        choice = 2;
                        break;
                    }
                    case R.id.button_choice3: {
                        choice = 3;
                        break;
                    }
                    case R.id.button_choice4: {
                        choice = 4;
                        break;
                    }
                    default: {
                        choice = 1;
                        break;
                    }
                }

                // saving the choice of the user
                PreferenceManager
                    .getDefaultSharedPreferences(ChoiceActivity.this)
                    .edit()
                    .putInt(NavigatorActivity.KEY_CHOICE, choice)
                    .apply();

                Intent intent = NavigatorActivity
                    .createIntentBasedOnChoice(ChoiceActivity.this, choice);

                startActivity(intent);
                finish();
            }
        });
    }
}
 类似资料:
  • 问题内容: 我有一个名为@status的变量,该变量在此select语句之前设置: 我只想选择if列,否则我想为shipwith选择null。我该如何完成? 问题答案:

  • 我有三张桌子 表A 我需要根据传递的参数将TableA连接到TableB或TableC。ie 我尝试了以下查询 但是,这是给语法错误。有人能帮忙吗? 解决方案:

  • 本文向大家介绍asp.net SqlParameter如何根据条件有选择的添加参数,包括了asp.net SqlParameter如何根据条件有选择的添加参数的使用技巧和注意事项,需要的朋友参考一下 SqlParameter带参数的增删改查语句,可以防止注入.有时候写sql语句的时候会根据方法传进来的参数来判断sql语句中where条件的参数. 一般方法 DAL层方法 现在想根据集合UserInf

  • 我有一个熊猫数据框,大约有50列和

  • 我用AnyLogic创建了一个简单的模型(见截图)。现在我想添加一个条件,选择服务块中的两个资源集中的一个。例如,以下场景应适用:如果队列中有5个以上的部件,工作人员3和工作人员4应执行服务。如果有的话

  • 问题内容: 我需要创建一个GUI,用户可以使用它选择几个属性,这些属性将用于查询数据库以找到合适的人。我正在寻找有关如何根据用户的选择动态生成数据库查询的想法。 查询将包含几个字段,但为便于理解,我仅在下面举例说明三个字段: 职业 -可以有0到n个职业字符串。如果给出了占用字符串,则其中之一必须匹配。 年龄 -年龄可以表示为: 完全匹配(30) 范围(例如30-40) 小于一个值(-40) 大于一