java - 从旋转器中定位用户选择并在下一个 Activity 中使用它 - Android

标签 java android sqlite sharedpreferences android-spinner

目前,我对于定位和使用用户从我的应用程序中的微调器(下拉菜单)中选择的内容的最佳方式遇到了一些困境。

为了给您一些见解,假设我有两个 Activity ,一个称为创建行,用户从微调器中选择他们的选项,下一个称为行详细信息,我希望能够在其中处理用户选择的内容.

我目前正在成功地将用户下拉选择保存到 SQLite 数据库。

在我的微调器中,用户可以选择 20 或 30 的选项。在第二个 Activity 的详细信息行中,我希望能够编写 IF 语句来告诉我的 app 执行的操作取决于他们选择的是 20 还是 30?

获取用户选择并准备 IF 语句的最佳方法是什么?

  • 我应该使用 db.query 来获取用户选择的内容并在 IF 语句中使用它吗?

    • 我应该将选择存储在 Sharedpreference 中并以这种方式定位吗?

这是微调器代码:

spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {


            switch (position) {
                case 0:
                    quantity.setText("");
                    ;
                    break;
                case 1:
                    quantity.setText(PackageType20);
                    timeadded = 28;
                    duration.setText(timeadded + " Hours");


                    break;
                case 2:
                    quantity.setText(PackageType30);
                    timeadded = 27;
                    duration.setText(timeadded + " Hours");

                    break;
                default:
                    break;
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

使用尝试的方法进行编辑:

创建线路: 在创建行上,我将用户选择存储在公共(public)静态变量中:

public static spinnerSelection2 = String.valueOf(spinner2.getSelectedItem());

线路详情: 然后我在下一个 Activity 中引用该字符串并将其设置为我将在 IF 语句中使用的变量:

 String spinnerSelection2 = CreateLine.spinnerSelection2;

    if (spinnerSelection2.equals("20")) {
        optimum20 = (int) (diffminutes * 0.383);
        percentage20 = optimum20 / (648 * 100);
    } else if (spinnerSelection2.equals("30"))
            optimum30 = (int) (diffminutes * 0.373);
            percentage30 = optimum30 / (605 * 100);

我不太确定哪种方法最好使用,也不确定如何执行每种方法..任何帮助都会很棒!

谢谢

最佳答案

要在您的 switch case 中执行此操作,请添加以下行以进入新 Activity :

Intent intent = new Intent(getContext(),yourSecondActivity.class);
intent.putExtra("duration",duration);
intent.putExtra("PackageType", packageType);

在第二个 Activity 中创建两个字符串来存储这些值。并在创建时导入这些值,写下:

yourVariable = intent.getStringExtra("duration");
yourSecondVariable = intent.getStringExtra("packageType");

之后,您可以应用 if else 来检查满足哪个条件并进行相应的操作。

关于java - 从旋转器中定位用户选择并在下一个 Activity 中使用它 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47175827/

相关文章:

列表中的 Java 泛型实例 - 泛型可观察值和所有

java - ListView Activity 在微调器类内的开关盒中无法正常工作

python - 在 Python 中序列化 Sqlite3

java - 即使 SQLite 数据库中存在数据也无法登录

java - 如何使用tcp发送txt以外的文件格式

java - 滚动 JScrollPane 时出现问题 - 线程

java - 确定 JSON 提要中是否存在值的更好方法

java - Unity3D - 从 Android 调用静态方法

android - Android 的 ActivityUnitTestCase 中的测试对话框

"ALL"的 SQLite 语法