我有一个AutoCompleteTextView
显示下拉列表,在输入文本时会自动更新。如果文本与特定字符串匹配,则Spinner
控件会显示特定类别。这是使用TextWatcher
. (我使用了这两种方法onTextChanged(...)
和afterTextChanged(...)
。两种方法都有相同的现象。)。这在手动输入文本时工作正常。AutoCompleteTextView
但这在设置using的文本时不起作用setText()
。然后文本来自我开始使用 startActivityForResult 的另一个活动。控件中的值Spinner
不会更改。如果删除一个字母并再次添加它,Spinner
控件会正确更新其值。有谁知道为什么?有谁知道如何改变这种行为?
问问题
1551 次
2 回答
0
一种解决方法可能是在 AutoCompleteTextView 的 setText() 上显式调用 afterTextChanged(...)
于 2012-10-10T22:07:04.397 回答
0
我找到了解决方案:
从我的第二个活动返回后,我必须调用requery()
适配器的光标 ( ((SimpleCursorAdapter)categorySpinnerAdapter).getCursor().requery();
)。也许与此同时,人们不会再打电话requery()
了,因为它被标记为已弃用,但我稍后会处理......(有人可以解释这种行为吗?光标是否在onPause()
或期间停用onStop()
?)
但即使这样也不够。我SpinnerControl
的值还没有改变。我还必须调用setAdapter()
它SpinnerControl
以使其再次工作(spCategory.setAdapter(categorySpinnerAdapter);
)。(有人知道这里发生了什么吗?打开光标(或重新查询)和附加适配器都应该在onResume()
or中完成onStart()
吗?)
于 2012-10-13T00:48:28.187 回答