Я использую ArrayAdapter в диалоговом окне диалога, который работает на Android 4.0 и более, но не в версии 2.3.ArrayAdapter требует, чтобы идентификатор ресурса был TextView в DialogFragment
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.dialog, null);
Spinner spReglement;
spReglement = (Spinner)view.findViewById(R.id.listReglements);
ArrayAdapter<String> adapterList = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1);
adapterList.setDropDownViewResource(R.layout.customspinner);
spReglement.setAdapter(adapterList);
HashMap<Integer, String> mapReglement = new HashMap<Integer, String>();
mapReglement.put(-1, "");
adapterList.add("");
for(int i=0; i<alReglement.size();i++){
String libelle = String.valueOf(alReglement.get(i).get("Libelle"));
mapReglement.put(i, libelle);
adapterList.add(libelle);
}
builder.setView(view)
.setPositiveButton("Valider", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onDialogPositiveClick(DialogFSE.this);
}
})
.setNegativeButton("Annuler", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onDialogNegativeClick(DialogFSE.this);
}
});
return builder.create();
}
My Layout "Диалог" содержит 3 EditText и 1 Spinner, мой макет "customspinner" constains только TextView.
Когда я исполняю мое приложение на Android 2.3 я следующее исключение: к неустранимым: com.mypackage.myapss.mainThread java.lang.IllegalStateException: ArrayAdapter требует идентификатор ресурса быть TextView ...
Не сейчас, если это полезно, но я использую библиотеку поддержки v4 для Android в моем приложении.
Я читал, что в других темах, но я не понимаю, как использовать его. Например, я попробовал следующее: ArrayAdapter adapterList = new ArrayAdapter (getActivity(), android.R.layout.simple_list_item_activated_1, R.layout.tvcustomspinner, al); Где R.layout.tvcustomspinner - это мой TextView в «customspinnerregul.xml», и al - это мой ArrayList, который содержит всю строку, которая мне нужна в моем адаптере, но это не работает. –
Проверьте мой обновленный ответ – Piyush
Я попробовал это решение раньше ... но с ошибкой! Это работает сейчас, спасибо за вашу помощь :) –