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)から、このスピナーを使用して選択したアイテムを取得することもできます。intの定数配列を作成するには、ここまたはここを参照してください。

スピナーの選択値が気になる場合は、

mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition())

また、次の方法を使用できます:getSelectedItem()、、またはこれらのドキュメントはここここにありますgetSelectedItemPosition()getSelectedItemId()getSelectedView()

于 2012-09-20T09:49:05.557 に答える