在这里,我有一个布局,根据我从网络服务获得的一些数据创建一些视图。有一些edittexts,textviews,spinners等。
它是一种民意调查,所以在我克制布局和选项后,我必须填写它并再次将数据发送到服务器。
为此,我将对象放在微调器上,我使用此线程中建议的适配器 https://stackoverflow.com/a/8116756/6323705
我的问题是如何在最后获得微调器值?因为当我使用这个
int childs = parent.getChildCount();
for(int i=0;i <= childs;i++){
View v=parent.getChildAt(i);
if (v instanceof EditText) {
EditText et = (EditText) v;
//then save the data in an special Array
}
else if (v instanceof TextView) {
TextView tv = (TextView) v;
//save it in an other Array
}
else if (v instanceof Spinner) {
Spinner sp = (Spinner) v;
//putting OnItemSelectedListener here is not working either
}
它只保存最后的微调器值,并且每个布局我有4个或5个微调器,所有不同。
要从布局中获取数据,然后使用以下内容发送它:
{{1}}
我该怎么做?
答案 0 :(得分:0)
我在app中有相同的要求,而且我使用它并且工作正常。
List<View> allVIEWS=new ArrayList<>();
int spinnerValue=0;
此列表包含所有动态视图。
因此,您正在创建动态微调器,因此当您动态定义微调器时,请在该代码中添加此行。
spinner.setOnItemSelectedListener(this);
并在覆盖metod:
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
spinnerValue=0;
for (int noOfViews = 0; noOfViews < itemDetailses.getOption().size(); noOfViews++) {
if (itemDetailses.getOption().get(noOfViews).getOptType().equals("-2")) {
Spinner s = (Spinner) allVIEWS.get(noOfViews);
sp1v = itemDetailses.getOption().get(noOfViews).getValues().get(s.getSelectedItemPosition()).getOptPriceDiff();
spinnerValue+=Integer.parseInt(sp1v);
}
}
}
答案 1 :(得分:0)
您可以覆盖名为onItemSelected
示例:
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
final String item = parent.getItemAtPosition(position).toString();
}
字符串&#39;项目&#39;具有所选的微调器项的值。希望这有帮助!