4

我有一个活动可以保存并显示多个片段。如何防止编辑文本从保存的实例中恢复片段时自动填充文本?

当我重新输入片段时,它会自动填充所有editText中的文本。所有字段的文字也一样。

实施例:

打开片段并填写文本两个editTexts:
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; 
} 

通过调试,我可以看到EDITTEXT由overrided内设置断点设置文本OnTextChanged 。

这是从断点堆栈跟踪: Stacktrace
(NASEditText是我的自定义视图)

两个问题/问题:

  1. 如何防止活动/片段/ EDITTEXT填满在片段恢复时字​​段中的文本?
  2. 为什么它填写所有字段的相同文本?
+0

也许你恢复保存状态的地方。显示你的片段代码 –

+0

@SergeyGlotov看看代码。我没有恢复任何东西。 Android会自动保存添加到backstack afaik的片段的editTexts状态... – Otziii

+2

@SergeyGlotov的Android单独恢复的EditText的状态下,哈克解决问题的办法是子类的EditText并覆盖onRestoreSavedState方法,使用的setText(“”)在那里。但同样,这是一个哈克解决方案 – Slugge

回答

5

在朋友的帮助下发现问题!

SaveEnabled在Android中的editTexts上默认为true。


解决方法是设置:
setSaveEnabled(false);
您EDITTEXT。

不知道为什么它填补了所有领域的最后值...

+0

这也可以在XML来完成 –

1

这是不是问题的答案,但它解决了这个问题:

正如评论说@Slugge:
覆盖您的自定义EDITTEXT的方法的onSaveInstanceState和清除文本/你从想要什么那里。

相关问题