2014-01-05 27 views
1

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

AlertDialog.Builder adb2 = new AlertDialog.Builder(this); 
LayoutInflater adbInflater2 = LayoutInflater.from(this); 
View SpinnerLayout = adbInflater.inflate(R.layout.spinner, null); 
adb2.setView(SpinnerLayout); 
adb2.setTitle("Select destination"); 

Spinner s = (Spinner) findViewById(R.id.spinner2); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item, ListPointName); 
s.setAdapter(adapter); 
adb2.show(); 

И мой spinner.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 
      <Spinner 
      android:id="@+id/spinner2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

</LinearLayout> 

Когда я запускаю этот код, у меня есть неустранимое исключение:

01-05 17:45:07.273: E/AndroidRuntime(8093): FATAL EXCEPTION: main 

(но если я запустил его без части ArrayAdapter, у меня будет всплывающее окно, поэтому проблема должна быть, когда я пытаюсь заполнить счетчик ...
Я проверил, и мой список ListPointName не пуст.)

Может кто-нибудь объяснить, что я делаю неправильно?

Большое спасибо

+0

Может ли у вас обеспечить полную трассировку стека? –

ответ

2

Вместо this-

Spinner s = (Spinner) findViewById(R.id.spinner2); 

сделаю это-

Spinner s = (Spinner) SpinnerLayout.findViewById(R.id.spinner2); 
+0

это работает, спасибо большое! – user2748484

1

вы пытаетесь найти вид из вашего основного макета, но ваш счетчик находится в spinnerLayout, так

Изменение Spinner s = (Spinner) findViewById(R.id.spinner2); к Spinner s = (Spinner) SpinnerLayout.findViewById(R.id.spinner2);

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