我很震惊这个问题。我有很多动态创建的微调器。请帮我从这些微调器中获取数据。
单击添加按钮时,应从所有微调器获取数据。
按钮点击代码
btnSave.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String[] strings = new String[allEds.size()];
String[] stringSpinns = new String[allSpns.size()];
for(int i=0; i < allEds.size(); i++){
strings[i] = allEds.get(i).getText().toString();
try
{
json.put("Name", strings[i]);
//json.put("Description", descOfFolder);
Log.w("ANDROID DYNAMIC VIEWS:", "View Id: " + json);
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
}
使用此代码动态添加微调器
public void addSpinner() {
LinearLayout rAlign = (LinearLayout)findViewById(R.id.lId);
List<String> list = new ArrayList<String>();
list.add("Net Banking Id");
list.add("Net Banking password");
list.add("Account Number");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
Log.w("ANDROID DYNAMIC VIEWS:", "View Id: " + dataAdapter);
LinearLayout spinnerHolder = new LinearLayout(getApplicationContext());
spinnerHolder.setOrientation(LinearLayout.HORIZONTAL);
spinnerHolder.setLayoutParams(
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT, 1f));
Spinner newSpinner = new Spinner(getApplicationContext());
allSpns.add(newSpinner);
newSpinner.setLayoutParams(
new Spinner.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
newSpinner.setAdapter(dataAdapter);
rAlign.addView(spinnerHolder);
spinnerHolder.addView(newSpinner);
Log.w("ANDROID DYNAMIC VIEWS:", "View Id: " + allSpns);
}
创建列表以跟踪微调器的数量并打开一个循环以获取数据。
String[] stringSpinns = new String[allSpns.size()];
但对如何获取数据感到困惑......
答案 0 :(得分:0)
它有一个简单的解决方案。
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
switch(your spinner id)
{
case spinnerid:
Toast.makeText(your context,parent.getItemAtPosition(position).toString()+" Selected", Toast.LENGTH_LONG).show();
}
}
答案 1 :(得分:-1)
如果问题是微调器的数量并处理它们,你可以制作一个微调器数组,然后使用另一个数组中的循环来反转数据。 OR 您可以使用常量数组的ID并使用findViewById(yourSpinnerId)
找到您的微调器,然后使用此微调器获取所选项目。要制作一组常量的整数,您可能需要查看here或here
如果您关注微调器的选定值,请使用
mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition())
此外,您可以使用以下方法:getSelectedItem()
,getSelectedItemPosition()
,getSelectedItemId()
或getSelectedView()
这些文档包括here和here < / p>