目前我在使用我的应用程序中定位和使用用户从微调器(下拉菜单)中选择的内容的最佳方法时遇到了一些困境。
为了给你一些见解,请说我有两个活动,一个叫做创建行,用户从微调器中选择他们的选项,另一个叫做行详细信息,我希望能够处理用户选择的内容
我目前成功将用户下拉选项保存到SQLite数据库。
在我的微调器中,用户可以选择20或30的选项。在第二个活动的行详细信息上,我希望能够编写一个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 static spinnerSelection2 = String.valueOf(spinner2.getSelectedItem());
LINEDETAILS: 然后我在下一个活动上引用该字符串并将其设置为我将在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);
我不太确定哪种方法最好用,也不确定如何做每一种方法......任何帮助都会很棒!
由于
答案 0 :(得分:1)
要在您的交换机案例中执行此操作,请添加以下行以进入新活动:
public Form1()
{
// Initialisations left out
dg.AutoGenerateColumns = false;
dg.AllowUserToAddRows = true;
dg.Columns["ID"].DataPropertyName = "ID";
dg.Columns["Customer"].DataPropertyName = "Customer";
bs.DataSource = typeof(List<Record>);
bs.AllowNew = true;
dg.DataSource = bs;
displayNewBlock(0);
}
private void numUpDown_ValueChanged(object sender, EventArgs e)
{
displayNewBlock((int)numUpDown.Value);
}
private void displayNewBlock(int blockIndex)
{
bs.Clear();
foreach (Record row in blockList[(int)numUpDown.Value])
bs.Add(row);
}
在第二个活动中,创建两个字符串来存储这些值。要在create中导入这些值,请写下:
Intent intent = new Intent(getContext(),yourSecondActivity.class);
intent.putExtra("duration",duration);
intent.putExtra("PackageType", packageType);
之后你可以申请if else来检查哪个条件满足并相应地进行操作。