从多个微调器获取数据?

时间:2012-09-20 09:41:17

标签: android android-spinner

我很震惊这个问题。我有很多动态创建的微调器。请帮我从这些微调器中获取数据。

单击添加按钮时,应从所有微调器获取数据。

按钮点击代码

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()];    

但对如何获取数据感到困惑......

2 个答案:

答案 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)找到您的微调器,然后使用此微调器获取所选项目。要制作一组常量的整数,您可能需要查看herehere

如果您关注微调器的选定值,请使用

mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition())

此外,您可以使用以下方法:getSelectedItem()getSelectedItemPosition()getSelectedItemId()getSelectedView()这些文档包括herehere < / p>