是否可以获取列表或找到Spinner
与特定标签匹配的所有内容?
我希望用户能够动态添加新Spinner
的小部件,但我需要能够动态地从每个Spinner
.
在jQuery
中,我可以通过 选择与某个类匹配的所有元素$('.myClassSelector').each()
。可以在 Android 中完成此操作或类似操作吗?
更新
所有微调器都LinearLayout
在 XML 中指定的特定对象中。布局用作所有微调器的容器。
是否可以获取列表或找到Spinner
与特定标签匹配的所有内容?
我希望用户能够动态添加新Spinner
的小部件,但我需要能够动态地从每个Spinner
.
在jQuery
中,我可以通过 选择与某个类匹配的所有元素$('.myClassSelector').each()
。可以在 Android 中完成此操作或类似操作吗?
更新
所有微调器都LinearLayout
在 XML 中指定的特定对象中。布局用作所有微调器的容器。
我认为您可以获得先前添加的布局的所有子项,Spinner
并检查该子项是否Spinner
存在。
LinearLayout ll = //Your Layout this can be any Linear or Relative layout
//in which you added your spinners at runtime ;
int count = ll.getChildCount();
for(int i =0;i<count;i++)
{
View v = ll.getChildAt(i);
if(v instanceof Spinner)
{
// you got the spinner
Spinner s = (Spinner) v;
Log.i("Item selected",s.getSelectedItem().toString());
}
}
如果可能的话,最好将所有微调器添加到相同的线性布局中并使用 FasteKerinns 解决方案,但如果不可能,请尝试以下类似的事情.....
Vector spinners = new Vector ():
private void treverseGroup(ViewGroup vg)
{
final int count = vg.getChildCount();
for (int i = 0; i < count; ++i)
{
if (vg.getChildAt(i) instanceof Spinner)
{
spinners.add(vg.getChildAt(i));
}
else if (vg.getChildAt(i) instanceof ViewGroup)
recurseGroup((ViewGroup) gp.getChildAt(i));
}
}
下面的方法能够在不使用递归的情况下检索整个视图层次结构中的所有 Spinner 。它还匹配给定的标签。root
private ArrayList<Spinner> getSpinners(ViewGroup root, Object matchingTag) {
ArrayList<?> list = root.getTouchables();
Iterator<?> it = list.iterator();
while (it.hasNext()) {
View view = (View) it.next();
if (!(view instanceof Spinner && view.getTag().equals(matchingTag))) {
it.remove();
}
}
return (ArrayList<Spinner>) list;
}