19

複数のフラグメントを保持して表示するアクティビティがあります。

フラグメントを再入力すると、すべての editTexts にテキストが自動的に入力されます。同様に、すべてのフィールドに同じテキスト。

例:

フラグメントを開き、次の 2 つの editText にテキストを入力します:
CustomEditText1: [______]
CustomEditText2: [_acb__]
CustomEditText3: [_qwe__]

戻るボタンをクリックして、フラグメント
CustomEditText1: [_qwe__]
CustomEditText2: [_qwe__]
CustomEditText3: [_qwe__ ] を再入力します。

これは、フラグメントで上書きされたメソッドです。

public AddBookingFragment() {
    // Required empty public constructor
}

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    tabsActivity = (TabsActivity) getActivity();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_add_booking, container, false);

    lastNameEditText = (NASEditText) view.findViewById(R.id.nas_add_booking_last_name);
    pnrEditText = (NASEditText) view.findViewById(R.id.nas_add_booking_pnr);

    addButton = (NASButton) view.findViewById(R.id.nas_add_booking_add_button);
    scanButton = (NASButton) view.findViewById(R.id.nas_add_booking_scan_button);

    confirmationBox = (LinearLayout) view.findViewById(R.id.nas_add_booking_confirmation_box);
    confirmationText = (NASHeaderAndSubtext) view.findViewById(R.id.nas_add_booking_confirmation_text);
    confirmationBox.setVisibility(View.GONE);

    bindButtons();

    FontHelper.setFont(container, tabsActivity);
    return view;
}

デバッグすると、オーバーライドされた OnTextChanged 内でブレークポイントを設定することにより、editText がテキストを設定していることがわかります。

これはそのブレークポイントからのスタック トレースです: (NASEditText は私のカスタム ビューです)スタックトレース

2 つの問題 / 質問:

  1. フラグメントが復元されたときに、アクティビティ/フラグメント/editText がフィールドのテキストに入力されないようにするにはどうすればよいですか?
  2. すべてのフィールドに同じテキストが入力されるのはなぜですか?
4

2 に答える 2