0

こんにちは、ユーザーの選択に基づいて動的にスピナーのリストを作成しています。ここでは、どのスピナーのメソッドが現在アクセスされているかを知りたい複数のスピナーがあるため、各スピナーに OnItemSelectedListener も実装しています。これがコードです。

     for (int i = 0; i < count; i++) {
        ArrayList<String> spinnerArray = new ArrayList<String>();
        spinnerArray.add("one");
        spinnerArray.add("two");
        spinnerArray.add("three");
        spinnerArray.add("four");
        spinnerArray.add("five");

        Spinner spinner = new Spinner(this);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {

                Object item = parent.getItemAtPosition(position);
                Log.d("vij-debug", "selector1 no is " + item);
                Log.d("vij-debug", "selector1 id is"+ view.getId());

                 //medicineArray1[i][1]=(String)item;
                // here I want to access the iteration value i



            }

            public void onNothingSelected(AdapterView<?> parent) {
            }
        });

        ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
                this, android.R.layout.simple_spinner_dropdown_item,
                spinnerArray);
        spinner.setAdapter(spinnerArrayAdapter);

誰でも適切な解決策を提案できますか?

4

2 に答える 2

1

Spinnerのタグを作成時に に設定し、 のパラメータiから取得します。AdapterView<?> parentonItemSelected()

Spinner spinner = new Spinner(this);
spinner.setTag(i);
...
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
    {
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
        {
            int spinnerNumber = parent.getTag();
        }
        ...
    }
);
于 2014-08-04T03:53:55.157 に答える
0

を使用してList、スピナーをそこに保管できます。あなたのforループで

//inside for loop
List<Spinner> spinnerList=new ArrayList<Spinner>();
Spinner spinner = new Spinner(this);
spinnerlist.add(spinner);

//end

//outside for loop
for(int i=0;i<spinnerList.size();i++){

setListenerToSpinner(spinnerList.get(i));

}

//end


//function
public void setListenerToSpinner(Spinner spinner){

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {

                Object item = parent.getItemAtPosition(position);
                Log.d("vij-debug", "selector1 no is " + item);
                Log.d("vij-debug", "selector1 id is"+ view.getId());

                 //medicineArray1[i][1]=(String)item;
                // here I want to access the iteration value i

            }

}
于 2014-08-04T03:48:56.150 に答える