この場合、DialogInterface.OnClickListener
をオーバーライドしてフックし、その実装からorderBy
の値を設定する必要があります。 onCreateDialog
に続いて
case SORT_MENU:
showDialog(ORDER_DIALOG);
break;
、::実際には、これはより良いaproachです
onCreateDialog
に再び
case ORDER_DIALOG:
AlertDialog.Builder orderBuilder = new AlertDialog.Builder(this);
orderBuilder.setTitle("Order");
orderBuilder.setItems(order, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String orderS;
if (order[which].equalsIgnoreCase("Ascending"))
orderS = "ASC";
else
orderS = "DESC";
bundle.putString("order", orderS);
dialog.dismiss();
showDialog(COLUMNS_DIALOG); // <-- NEW!!!
}
});
dialog = orderBuilder.create();
break;
、:
case COLUMNS_DIALOG:
AlertDialog.Builder columnBuilder = new AlertDialog.Builder(this);
columnBuilder.setTitle("Columns");
columnBuilder.setItems(columns, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
bundle.putString("column", columns[which]);
dialog.dismiss();
configureString(); // <-- NEW!
}
});
dialog = columnBuilder.create();
break;
どこか:
private void configureString(){
String orderBy = bundle.getString("column") + bundle.getString("order");
}