Вы также должны переопределить функцию onPrepareDialog
. Попробуйте следующее:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case NEWPIC_DIALOG:
LayoutInflater lo = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View picDetailView = lo.inflate(R.layout.newpicdialog,(Gallery) findViewById(R.id.NewPicDialogGallery);
AlertDialog.Builder picDetailBuilder = new AlertDialog.Builder(this);
picDetailBuilder.setTitle("New Picture");
picDetailBuilder.setView(picDetailView);
AlertDialog picDetail = picDetailBuilder.create();
return picDetail;
default:
break;
}
return null;
}
@Override
protected void onPrepareDialog(int id, Dialog dialog, Bundle args) {
switch (id) {
case NEWPIC_DIALOG:
Gallery g = (Gallery) dialog.findViewById(R.id.NewPicDialogGallery);
g.setAdapter(new ImageAdapter(dialog.getContext()));
g.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
Toast.makeText(DragActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
}
super.onPrepareDialog(id, dialog, args);
}