gpt4 book ai didi

java - 读取动态生成的微调器的值 - 如何执行此操作?

转载 作者:行者123 更新时间:2023-12-01 14:37:07 25 4
gpt4 key购买 nike

在我的布局中,有许多微调器是通过以下方式以编程方式生成和添加的:

        for (int i = 0; i < spinnerCount; i++) {

spinner = new Spinner(this);
spinner.setId(i);
spinner.setAdapter(new MyAdapter(SpinnerLayout.this, R.layout.row, strings));
spinner.setOnItemSelectedListener(this);
spinnerContainer.addView(spinner);
}

一切似乎都工作正常,直到我想获取每个微调器的值。监听器仅返回最后一个微调器的值。如何让它读取每个微调器的值?最终,我希望将所有值存储在预定义的数组中(因此,考虑循环方法 spinnerValues.set(intposition, int spinnerVal);

这是此线程的后续内容:Multiple spinners in an activity...

此外,我在这里发现了一个非常相似的问题:How to retrieve value of Dynamically added Spinner... ,但是当尝试应用链接的答案时,我收到一条错误消息,指出我的微调器变量不是最终的(好吧,在这种情况下不应该是......)。伙计们,有什么提示吗?

最佳答案

您可以在数组中保留对每个 Spinner 的引用,并在监听器循环中通过它并获取每个 Spinner 的值。

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
for(Spinner s : spinners){
// s.getSelectedItem()
}
}

您还可以通过比较 ID 来检查哪一个已更改。

parent.getId() == s.getId()

否则您可以查看 ViewGroup 中的所有微调器:

int count = spinnerContainer.getChildCount();
for(int i =0;i<count;i++)
{
View v = spinnerContainer.getChildAt(i);
if(v instanceof Spinner)
{
((Spinner)v).getSelectedItem()
}
}

最后,您还可以为每个监听器实例化不同的监听器。

关于java - 读取动态生成的微调器的值 - 如何执行此操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16386802/

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