【问题标题】:Get data from multiple spinners?从多个微调器获取数据?
【发布时间】:2016-03-17 16:50:54
【问题描述】:

您好,对这个问题感到震惊。我有许多动态创建的微调器。请帮助我从这些微调器中获取数据。

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

按钮点击代码

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

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

【问题讨论】:

  • 发布您遇到问题的代码?
  • @Ram kiran yes 更新了代码

标签: android android-spinner


【解决方案1】:

它有一个简单的解决方案。

@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();
    }
}

【讨论】:

    【解决方案2】:

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

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

    mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition())
    

    此外,您可以使用以下方法:getSelectedItem()getSelectedItemPosition()getSelectedItemId()getSelectedView() 这些方法的文档是 herehere

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-18
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多