0

クラスを作成し、レイアウトに2つのスピナーを追加しました。

目的:最初のスピナーからアイテムを選択すると、2番目のスピナーのコンテンツが変更されます。

から電話をかけていonCreate()(onItemSelected(spinnercategoryl, spinnerEnterprisel, x, i);)ます。問題は、最初のアイテムからアイテムを選択すると、2番目のアイテムの内容が変更されることですが、2番目のアイテムからアイテムを選択する必要がある場合、選択したアイテムとして表示されません。

public void onItemSelected(AdapterView<?> parent, View view, int pos,
        long id) {
    // TODO Auto-generated method stub
    Spinner spinnerEnterprisel = (Spinner) findViewById(R.id.spinner_enterprise_folding_inserter);
    Spinner spinnercategoryl = (Spinner) findViewById(R.id.spinner_categories);

    switch (spinnercategoryl.getSelectedItemPosition()) {
    case 0:
        ArrayAdapter<CharSequence> adapterDatal = ArrayAdapter
                .createFromResource(this,
                        R.array.enterprise_folding_inserter,
                        android.R.layout.simple_spinner_item);
        adapterDatal
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinnerEnterprisel.setAdapter(adapterDatal);

        break;
    case 1:
        ArrayAdapter<CharSequence> adapterData1 = ArrayAdapter
                .createFromResource(this, R.array.enterprise_sorters,
                        android.R.layout.simple_spinner_item);
        adapterData1
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinnerEnterprisel.setAdapter(adapterData1);

        break;

    case 2:
        ArrayAdapter<CharSequence> adapterData2 = ArrayAdapter
                .createFromResource(this, R.array.Softwares,
                        android.R.layout.simple_spinner_item);
        adapterData2
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinnerEnterprisel.setAdapter(adapterData2);

        break;
    case 3:
        ArrayAdapter<CharSequence> adapterData3 = ArrayAdapter
                .createFromResource(this, R.array.workflow,
                        android.R.layout.simple_spinner_item);
        adapterData3
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinnerEnterprisel.setAdapter(adapterData3);

        break;
    }

    spinnerEnterprisel.setOnItemSelectedListener(enterprise.this);
    spinnercategoryl.setOnItemSelectedListener(enterprise.this);
    // Spinner spinnerEnterprisel1 = (Spinner)
    // findViewById(R.id.spinner_enterprise_folding_inserter);
}

public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}`
4

1 に答える 1

1

両方のスピナーに同じリスナーを設定しました。いずれかのスピナーで選択を行うたびに、「子」スピナーがリセットされます。「子」スピナーの を設定するコードを削除するだけですOnItemSelectedListener

spinnerEnterprisel.setOnItemSelectedListener(enterprise.this);

「子」スピナーは、選択した選択肢を保持します。

于 2012-10-08T17:25:06.587 に答える