2014-09-05 2 views
0

У меня есть два класса. Это «Старт» и «MySpinner». Я хочу добавить spinner, используя класс MySpinner в стартовом экране, но у arrayadapter есть ошибка в MySpinner. Мое приложение не открывается.Как подключить адаптер к главному экрану?

Начало Класс:

public class Start extends ActionBarActivity { 

RelativeLayout MainRelLay; 
ScrollView MainScrollView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    MainScrollView = new ScrollView(this); 
    this.setContentView(MainScrollView); 

    MainRelLay = new RelativeLayout(this); 

    MainScrollView.addView(MainRelLay); 

    MySpinner spinner = new MySpinner(); 
    MainRelLay.addView(spinner.addSpinner(this)); 

} 

MySpinner Класс:

public class MySpinner { 

Spinner sp; 
String ArSp[]; 
ArrayAdapter AA; 

public Spinner addSpinner(Context cnt) { 

    sp = new Spinner(cnt); 

    ArSp[0] = "A"; 
    ArSp[1] = "B"; 

    sp.setAdapter(new ArrayAdapter(cnt, android.R.layout.simple_spinner_item, ArSp)); 

    return sp; 

} 
+1

Вы никогда не инициализируете 'ArSp'. Вы говорите 'ArSp [0] =" A ";', но в этой точке 'ArSp [0]' не существует. Кроме того, если вы получаете ошибки, по крайней мере, сообщите нам, что они собой представляют, и/или опубликуйте свой вывод logcat. – csmckelvey

+0

Где ваши XML-макеты? –

+0

Проблема решена. Я не использую xml. Спасибо – 2014-09-05 06:49:55

ответ

0

У вас есть несколько вопросов компилировать в своем классе. Мое первое предложение для вас было бы использовать IDE, которая будет выделять, когда вы компилируете ошибки.

Проблема, с которой вы столкнулись, это не инициализация вашего массива. Вы должны инициализировать как

String[] arSp = new String[2]; 

Это даст вам Струнный массив размером 2.

Кроме того, это лучшая практика, чтобы начать переменные строчными буквами.

+0

Спасибо Бриттани, я согласен с тобой :) – 2014-09-05 06:48:42

Смежные вопросы