Создать динамический спиннер в Android - PullRequest
0 голосов
/ 10 марта 2012

Мне нужно создать форму в Android, которая может содержать или не содержать счетчик, в зависимости от данных, которые мы должны создать. Поэтому я пытаюсь создать динамический спиннер в форме. Но это не работает. Я могу создать счетчик, но когда я нажимаю на счетчик, появляется сообщение об ошибке.

Код, который я написал:

dynamicSpinner = new Spinner(getApplicationContext());
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, option);

adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
dynamicSpinner.setAdapter(adapter);
Параметр

представляет собой ArrayList<String>, который содержит список параметров.

Если у кого-то есть решение, пожалуйста, поделитесь со мной.

Ответы [ 4 ]

1 голос
/ 11 марта 2012

попробуйте

Spinner s=new Spinner(yourActivity.this);
ParentLayout.addView(s);

Я не вижу, как вы добавляете блесну в родительский макет. Меня больше интересует какая именно ошибка вы получаете

0 голосов
/ 11 июля 2012

Вы пробовали viewflipper?

http://developer.android.com/reference/android/widget/ViewFlipper.html

Эффективно, особенно для тех, кто нуждается в нескольких видах / виджетах.

Дело в том, что виджеты / представления, которые будут просматриваться / добавляться, определены в xml.

Надеюсь, это поможет: D

0 голосов
/ 10 марта 2012

У вас есть spinner в вашем xml, затем в activity, используйте следующее:

dynamicSpinner = (Spinner)findViewbyID(spinner ID);

if(data available)
    populate the spinner;
else
    dynamicSpinner.setVisibility(View.Gone);

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ: Если вы хотите добавить spinner программно, все равно у вас будет макет в xml, который вы используете в setContentView(layout id) .., поэтому получите макет, в котором все дочерние элементы присутствуют в xml, через его идентификатор и затем добавьте spinner к этому макету.

0 голосов
/ 10 марта 2012

Включите счетчик в ваш XML с идентификатором.

и затем в коде используйте:

dynamicSpinner = (Spinner)findViewById(R.id.mydynamicspinner);

вместо

dynamicSpinner = new Spinner(getApplicationContext());

отдых все выглядит нормально ...

...