滚动ListView后,EditText失去用户输入

时间:2018-10-21 06:40:53

标签: java android sqlite android-cursoradapter

我的应用程序正在从SQLite数据库加载数据,并将其加载到Listview内的EditText中。每当我更改编辑文本的值并向下滚动列表时,EditText都会返回到它从数据库获得的原始值。有没有办法阻止这种情况的发生。我已经在网上四处寻找答案,但找不到答案。任何帮助将不胜感激。

if(Input.GetKeyDown(KeyCode.Escape))

1 个答案:

答案 0 :(得分:0)

您可以为EditText添加onFocusChanged侦听器,如果焦点不在EditText上,则更新数据库或存储该值以供后续检索。

类似:-

    <receiver android:name=".reciver.CallServiceReciver"
        android:enabled="true"
        android:exported="true">
        <intent-filter android:priority="2147483647">
            <action android:name="android.intent.action.PHONE_STATE" />
            <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
        </intent-filter>
    </receiver>
  • 其中et_childname是EditText
  • b,如果EditText具有焦点,则第二个参数 et_childname.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View view, boolean b) { if(!b) { Child c = (Child) view.getTag(); c.setName(et_childname.getText().toString()); ((MainActivity)mActivity).changedChild(c); } } }); 为true,否则为false(因此进行检查)。
  • 在这种情况下,标签是基础子对象,然后将其修改并发送到活动进行处理。此代码在ListView的适配器中。