目前,我对于定位和使用用户从我的应用程序中的微调器(下拉菜单)中选择的内容的最佳方式遇到了一些困境。
为了给您一些见解,假设我有两个 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/