gpt4 book ai didi

android - 如何从以编程方式创建的微调器中获取位置

转载 作者:行者123 更新时间:2023-11-30 04:05:48 26 4
gpt4 key购买 nike

当用户在编辑文本中输入数字时,我的应用程序会创建并显示那么多的微调器。然后用户将从每个微调器中选择一个项目,然后单击保存按钮。我在互联网上看过,但一直无法找到从微调器中检索位置的方法。以下是我创建微调器的方式:

//numStockTanks is the number of spinners to be created
numStockTanks = Integer.parseInt(numOfStockTanks.getText().toString());
// creates all the fields
for(int i = 1; i <= numStockTanks; i++) {
TableRow tR = new TableRow(this);
// creates the textView
tV1 = new TextView(this);
tV1.setText("Stock Tank #" + i + " size: ");

// add spinner to row
spinner = new Spinner(this);
ArrayAdapter<CharSequence> adapterStockTankSize2 = ArrayAdapter.createFromResource(
this, R.array.StockTankSize, android.R.layout.simple_spinner_item);
adapterStockTankSize2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterStockTankSize2);
spinner.setId(1000 + i);

// add the TextView and the editText to the new TableRow
tR.addView(tV1);
tR.addView(spinner);

// add the TableRow to the TableLayout
tL.addView(tR,new TableLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
} // end for statement
} // end getNumberCreateSpinner ()

我尝试了几种不同的方法来获取微调器的位置,但我似乎无法弄清楚。这是我目前拥有的:

ArrayList<Integer> mArraySpinner = new ArrayList<Integer>();
for (int i = 0; i < numStockTanks; i++) {
spinner = (Spinner) findViewById(1000 + i);
if (spinner.getSelectedItemPosition() == 1) {
mArraySpinner.add(100);
} else if (spinner.getSelectedItemPosition() == 2) {
mArraySpinner.add(200);
} else if (spinner.getSelectedItemPosition() == 3) {
mArraySpinner.add(210);
} else if (spinner.getSelectedItemPosition() == 4) {
mArraySpinner.add(295);
} else if (spinner.getSelectedItemPosition() == 5) {
mArraySpinner.add(400);
} else mArraySpinner.add(0);
} // end for statement

谢谢你的帮助

编辑:在第一个答案后更新为我的最新尝试

编辑编辑:当我调试“spinner = (Spinner) findViewById(1000 + i);”这一行时它说 null 所以我知道我没有正确地指向我的微调器,这就是我需要帮助的地方

编辑:凹凸

最佳答案

您正在使用 1000++ 作为微调器 ID。当您尝试获取微调器时,请使用 100++ 检查它。

请更新您在代码中编写的 if 条件。将 100 更改为 1000

我已经更改并将您的代码中的示例代码放在下面。

spinner = (Spinner) findViewById(1000 + i);
if (spinner.getId().equals("1000")) {
mArraySpinner.add(spinner.getSelectedItemPosition());
}
else if(....){....}

关于android - 如何从以编程方式创建的微调器中获取位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11701055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com