他の人は機能しないという問題を抱えています、私はそれが機能しているという問題を抱えています(そしてそれはすべきではありません)
保存されたデータモデルがあり、GUI のアクティビティに再度ロードする必要があります。いくつかのスピナー値があります。
データは、共通のアクセス可能なクラスである参照ホルダーに配置されます。
アクティビティの onCreate は、編集モードかどうかを次のようにチェックします。
editMode = getIntent().getBooleanExtra(EDIT_MODE_KEY, false);
xml から UI 要素を読み込み、値の選択と入力を開始します。編集モードと作成モードでは、データ モデルを持つ値を選択する必要があります。実行時 ( onResume() の後) にはいくつかのワークフローがあります。スピナー 1 で何かが選択されているか、スピナー 2 アダプターのコンテンツを更新する必要があるかなどです。
プレーンでは機能しなかった.setSelection(positiontoSelect);
ため、遅延投稿を追加しましたが、現在は機能しています。
私の問題は次のとおりです。一時的に選択リスナーを削除し、選択を呼び出して、リスナーを追加し直します。
変更する必要があるコードは次のとおりです。
if (editedTimezonePosition > -1) {
final int positiontoSelect = editedTimezonePosition;
new Handler().postDelayed(new Runnable() {
public void run() {
OnItemSelectedListener listener = spSelectTimezone.getOnItemSelectedListener();
spSelectTimezone.setOnItemSelectedListener(null);
spSelectTimezone.setSelection(positiontoSelect);
spSelectTimezone.setOnItemSelectedListener(listener);
}
}, 250);
}
リスナーを null に設定しても効果はありません。リスナー メソッドへのコールバックを取得しています。
修正する方法があれば、共有してください。