Je reçois une exception NullPointerException lors de la tentative de création d'un Spinner dans une boîte de dialogue et je n'arrive pas à la déboguer car le code semble solide. Je me demande si quelqu'un d'autre a une idée. Toute aide est grandement appréciée.Définir spinner dans la boîte de dialogue personnalisée
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;
}
je reçois l'exception à adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item); J'ai changé le contexte en MyClass.this et l'exception est passée à la ligne suivante, ce qui me rend confus. Je me demande si c'est l'adaptateur qui a une valeur nulle, mais j'appelle tout de la même manière que je l'ai fait auparavant alors qu'il n'était pas dans une boîte de dialogue.
données XML pertinentes:
<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>
Edité le reste des données de sorte qu'il ne prendrait pas trop de place.
Votre spinner est-il défini dans la disposition de votre activité ou dans la disposition de la boîte de dialogue? – Brian
défini dans la présentation du dialogue. Je posterai le XML. –