使用onFocusChanged以外的方法从编辑文本中保存文本

时间:2013-09-05 01:31:31

标签: android android-edittext

所以我目前正在使用以下方法将文本保存到SharedPreferences SM

implementingacency.setOnFocusChangeListener(new OnFocusChangeListener() {

            @Override
            public void onFocusChange(View v, boolean hasfocus) {
                if(!hasfocus){
                    EditText et = (EditText) v;
                    if(et.getText().toString().length()>0)
                        SM.set_value(SharePrefForproject.KEY_implementationagency, et.getText().toString());
                }
            }
        });

此处,implementingagencyeditText。我在保存时遇到的问题是,如果未调用editTexts onFocusChangeListener,则会保存数据。任何人都可以推荐另一种方法来保存editText中的数据吗?

2 个答案:

答案 0 :(得分:2)

一种选择是使用TextWatcher并在用户输入数据时保存数据。

    implementingacency.addTextWatcher(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {
                    SM.set_value(SharePrefForproject.KEY_implementationagency, s.toString());
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
    });

答案 1 :(得分:1)

setOnPageChangeListener()是ViewPager方法

mViewPager.setOnPageChangeListener(this);

这是一个示例ViewPager

选择您认为适合您应用的活动

onPageScrollStateChanged(int state)
onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
onPageSelected(int position)

Here is the setOnPageChangeListener() docs