当EditText被完全填充时,我可以处理哪个事件?

时间:2014-06-03 16:01:06

标签: android android-fragments android-edittext android-tabs

我正在开发一个Android应用程序。 我使用Tabs实现了一个带有标签的View Pager,如this链接中所述,带有FragmentStatePagerAdapter,并在Activity的OnCreate方法上将标签添加到ActionBar。

在我的onCreateView事件中,我正在给包含EditText视图的布局进行充气,因此每个生成的Tab都有自己的EditText,供用户输入数据。

问题是,当用户在每个EditText控件中写入的输入完全填充后,我目前需要在本地存储每个文本框的内容。例如,我可以知道用户在更改选项卡时已完成输入数据,或者无法控制控件。

情景1: 我尝试在片段的onCreateView事件中将TextWatcher附加到EditText控件,但它对我不起作用,因为每次在我的控件中插入一个字母时都不需要调用它,所以我放弃了该选项

情景2: 我尝试将OnEditorActionListener附加到片段的onCreateView事件中的EditText控件,但它从未被调用(如this链接解释)

情景3: 我正在考虑处理TabListener的onTabUnselected事件,但我不知道如何访问PREVIOUS EditText控件值。此外,只有当用户通过按下其标题而不是滑动事件来选择标签时,这才会起作用。在这种情况下,我将SimpleOnPageChangeListener附加到ViewPager,但在该上下文中,我不知道哪个是上一个Tab,也无法访问其EditText控件。

我该怎么办? 非常感谢你!

1 个答案:

答案 0 :(得分:0)

当EditText失去焦点时,您只需将focusChangedListener添加到EditText:

OnFocusChangeListener focus = new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
    // TODO Auto-generated method stub

   }
};

每次编辑文本失去焦点时,只需将数据添加到包含所有数据的单例类,从所有TextEdits中检查出来

android get value from all fragment tab