0

ユーザーがテーブルのいくつかの異なる行の日付を編集できるようにするために、Androidのdatesliderカスタムダイアログクラスを使用しています。

日付スライダーを使用すると、ユーザーが指定できる最小日付と最大日付の間の日付のみを選択するように制限できます。

各テーブル行では、datesliderでユーザーを異なる最小日付と最大日付に制限する必要がありますが、onCreateDialogメソッド内で最小日付と最大日付を指定するため、ユーザーが行をクリックしたときにこれらの日付を動的に変更できる必要があります。

ユーザーがダイアログをクリックしたときにonCreateDialogメソッドを再度呼び出して実行しましたが、新しい制限は考慮されておらず、最初に作成されたダイアログが引き続き使用されていることを示しています。

どうすれば目標を達成できますか?

ありがとう、マックス。

4

1 に答える 1

1

ダイアログを使用する前にダイアログを変更する必要がある場合は、を使用する必要がありますonPrepareDialog

アップデート:

に渡されるonPrepareDialogダイアログは、で作成されたダイアログですonCreateDialog。好きなように変更してください(新しいものは作成しないでください)。カスタムダイアログクラスにいくつかのセッターを追加する必要がある場合があります。

protected void onPrepareDialog(int id, Dialog dialog) {
    switch(id) {
    case YOUR_DIALOG_ID:
        YearMonthDayHourMinute myDialog = (YearMonthDayHourMinute) dialog;
        myDialog.setInitialTime(initialTime);
        myDialog.setMinTime(minTime);
        myDialog.setMaxTime(maxTime);
        break;
    }
}
于 2011-11-18T18:51:50.577 に答える