DialogFragment を拡張するクラスで AlertDialog を作成します。
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
super.onCreateDialog(savedInstanceState);
Intent locationTypesIntent = new Intent(getActivity(), LocationTypesRetrieverService.class);
getActivity().getApplicationContext().startService(locationTypesIntent);
itemsOnList = new CharSequence[noOfItems];
itemsChecked = new boolean[noOfItems];
for(int i=0;i<noOfItems;i++)
{
itemsOnList[i] = "Location " + i;
itemsChecked[i] = true;
}
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Filter locations")
.setMultiChoiceItems(itemsOnList, itemsChecked,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
System.out.println("clicked choice");
}
}
);
createdAlertDialog = builder.create();
return createdAlertDialog;
}
次に、表示された項目を更新するために、AlertDialog でリストを取得し、アダプタを変更しようとします。
public void updateOptions(String[] optionsArray)
{
ListView list = createdAlertDialog.getListView();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity().getApplicationContext(),list.getId(),optionsArray);
list.setAdapter(adapter);
//list.invalidate();
}
エラーが発生します:
E/AndroidRuntime(9401): android.content.res.Resources$NotFoundException: リソース ID #0x1020403 タイプ #0x12 が無効です
何が起こっている???