1

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

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

按钮点击代码

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

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

4

2 回答 2

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();
    }
}
于 2016-03-17T08:50:54.530 回答
-1

如果问题是微调器的数量和处理它们,您可以制作一个微调器数组,然后使用另一个数组中的循环检索数据。或者,您可以使用一个恒定的 id 数组并找到您的微调器findViewById(yourSpinnerId),然后使用此微调器来获取所选项目。要制作一个恒定的整数数组,您可能需要查看此处此处

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

mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition())

此外,您可以使用以下方法 : , 或getSelectedItem()Documentation getSelectedItemPosition()for these are hereheregetSelectedItemId()getSelectedView()

于 2012-09-20T09:49:05.557 回答