Есть ли способ для опции вращателя, чтобы открыть другой счетчик? - PullRequest
1 голос
/ 27 сентября 2011

Я хочу, чтобы, когда кто-то щелкает опцию в Spinner, он открывает другую спиннер с большим количеством опций.Кроме того, есть ли возможность для опции «Другое» открыть текст редактирования, где кто-то может ввести свой выбор, если его выбор недоступен в Spinner?

Пример:

В Spinner 1 есть этиопции:

iOS

Android

И если они выберут iOS , появится другой спиннерсразу же, где варианты все версии iPhone.(то есть под названием «Какой у вас iPhone?»)

И если они выбирают Android, он делает то же самое, но с устройствами Android.

И если их телефон не включенвторой счетчик, они вводят модель своего телефона.

Как я могу это сделать, если в моем коде уже есть первый счетчик?

PS, если необходимо, я могу опубликоватькод для первого счетчика, хотя он довольно стандартный.

Ответы [ 2 ]

0 голосов
/ 04 августа 2012

Надеюсь, это будет вам полезно.

Попробуйте этот код ...

public class MainActivity extends Activity {

Spinner sp1,sp2;
ArrayAdapter<String> adp1,adp2;
List<String> l1,l2;
int pos;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    l1=new ArrayList<String>();

    l1.add("A");
    l1.add("B");

    sp1= (Spinner) findViewById(R.id.spinner1);
    sp2= (Spinner) findViewById(R.id.spinner2);

    adp1=new ArrayAdapter<String> (this,android.R.layout.simple_dropdown_item_1line,l1);
    adp1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    sp1.setAdapter(adp1);

    sp1.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub
            pos=arg2;
            add();

        }

        private void add() {
            // TODO Auto-generated method stub
            Toast.makeText(getBaseContext(), ""+pos, Toast.LENGTH_SHORT).show();

            switch(pos)
            {
            case 0:
                l2= new ArrayList<String>();                    
                l2.add("A 1");
                l2.add("A 2");

                adp2=new ArrayAdapter<String>(MainActivity.this,
                        android.R.layout.simple_dropdown_item_1line,l2);
                adp2.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                sp2.setAdapter(adp2);

                select();

                break;
            case 1:
                l2= new ArrayList<String>();                    
                l2.add("B 1");
                l2.add("B 2");

                adp2=new ArrayAdapter<String>(MainActivity.this,
                        android.R.layout.simple_dropdown_item_1line,l2);
                adp2.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                sp2.setAdapter(adp2);

                select();

                break;
            }

        }

        private void select() {
            // TODO Auto-generated method stub

            sp2.setOnItemSelectedListener(new OnItemSelectedListener() {

                @Override
                public void onItemSelected(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    // TODO Auto-generated method stub
                    Toast.makeText(getBaseContext(), "Test "+arg2, Toast.LENGTH_SHORT).show();

                }

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

                }
            });

        }

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

        }
    });
    }

}
0 голосов
/ 27 сентября 2011

По сути, создайте свой второй счетчик программно в зависимости от того, какой вариант он выберет.Я бы добавил «другое» к каждому второму счетчику.Если они выбирают «другое», вы можете отобразить текстовое поле.

...