Spinner im benutzerdefinierten Dialog einstellen

Ich erhalte eine NullPointerException, während ich versuche, einen Spinner in einem Dialogfeld zu erstellen, und kann ihn anscheinend nicht debuggen, da der Code solide aussieht. Ich frage mich, ob jemand eine Idee hat. Jede Hilfe wird sehr geschätzt.

    protected Dialog onCreateDialog(int id)
    {
        Dialog dialog;
        switch(id) {
        case DIALOG_SEND_PM:
            Spinner spinner = (Spinner)findViewById(R.id.pm_server);
            ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.server_array, android.R.layout.simple_spinner_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(adapter);
            spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

            dialog = new Dialog(PM.this);
            dialog.setContentView(R.layout.send_pm_dialog);
            dialog.setTitle(R.string.send_pm);
            pmMessage = (EditText) dialog.findViewById(R.id.send_pm_box);
            Button sendPm = (Button) dialog.findViewById(R.id.send_pm_button);
            sendPm.setOnClickListener(PM.this);
            break;
        default:
            dialog = null;
   }

Ich erhalte die Ausnahme bei adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item); Ich habe den Kontext in MyClass.this geändert und die Ausnahme wurde in die nächste Zeile verschoben, was mich verwirrt. Ich frage mich, ob es sich um einen Adapter handelt, der einen Nullwert hat, aber ich rufe alles auf die gleiche Weise wie zuvor auf, während ich mich nicht in einem Dialogfeld befinde.

Relevante XML-Daten:

<LinearLayout>
    <TextView/>

    <LinearLayout>

       <TextView/>
      <EditText/>
      <TextView/>
      <Spinner
        android:id="@+id/pm_server"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:background="@drawable/yblueborder"
        android:textColor="#ABABAB"/>
    </LinearLayout>

    <Button/>
</LinearLayout>

Bearbeitete den Rest der Daten, damit nicht zu viel Speicherplatz belegt wird.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage