0

我有一个AutoCompleteTextView显示下拉列表,在输入文本时会自动更新。如果文本与特定字符串匹配,则Spinner控件会显示特定类别。这是使用TextWatcher. (我使用了这两种方法onTextChanged(...)afterTextChanged(...)。两种方法都有相同的现象。)。这在手动输入文本时工作正常。AutoCompleteTextView但这在设置using的文本时不起作用setText()。然后文本来自我开始使用 startActivityForResult 的另一个活动。控件中的值Spinner不会更改。如果删除一个字母并再次添加它,Spinner控件会正确更新其值。有谁知道为什么?有谁知道如何改变这种行为?

4

2 回答 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 回答