3

現在、最初のスピナーの選択に基づいて 2 番目のスピナーを設定しようとすると問題が発生します。

私の最初のスピナーは、ドロップダウンに次のようなものがあります。

オプション1 オプション2 オプション3

次に、下に別のスピナーがあります。

Option1 だけを特別なものにしたい、つまり、ユーザーが Options1 を選択したときに、

2 番目のスピナーが表示されます。

スペック1

ユーザーが Option2 または Option3 を選択すると、次のように表示されます。

スペック1 スペック2 スペック3.

あなたはおそらく私が何を得ているかを見るでしょう。Option1 が選択された場合にのみ、2 番目のスピナーに一意の選択肢が存在する必要があります。

これまでの onCreate のコードは次のとおりです。

// creating adapters for both spinners
 ArrayAdapter<Grid> dataAdapter = new ArrayAdapter<Grid>(this,
            android.R.layout.simple_spinner_item, gridArrayList);


    //first drop down spinner here
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    gridSpinner.setAdapter(dataAdapter);

    regions = getResources().getStringArray(R.array.regions_array);

    defaultRegions = getResources().getStringArray(R.array.default_array);

     final ArrayAdapter<String> regionAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, regions);

     final ArrayAdapter<String> defaultAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, defaultRegions); //what should appear if user selected Option2 or Option3.

最初のスピナーの選択を処理するための私のコードは次のとおりです。

 gridSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View v,
                    int position, long rowId) 
            {
                 gridSelect = gridSpinner.getItemAtPosition(position).toString();
                Toast.makeText(LoginActivity.this, gridSelect, Toast.LENGTH_SHORT)
                        .show();

                gridInteger = (int) gridSpinner.getItemIdAtPosition(position);

                switch(gridInteger)
                {
                case 0:
                    regionSpinner.setAdapter(regionAdapter); //hint region adapter has spec1.
                    regionAdapter.notifyDataSetChanged();

                    break;
                default:
                    regionSpinner.setAdapter(defaultAdapter);
                    regionAdapter.notifyDataSetChanged();
                    break;

                }


            }

誰かが私を正しい方向に向けたり、どこが間違っているのか教えてくれたりしたら、とても感謝しています. ありがとうございました!

4

0 に答える 0