gpt4 book ai didi

android - 动态自动完成 TextView 建议消失

转载 作者:行者123 更新时间:2023-11-30 02:54:13 25 4
gpt4 key购买 nike

所以我让它工作...然后它坏了,我不知道为什么。我一直在绞尽脑汁想弄清楚哪里出了问题。

代码结构如下:

locale = (AutoCompleteTextView) findViewById(locationText);
locale.setThreshold(3);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, locationSuggestions);
adapter.setNotifyOnChange(true);
locale.setAdapter(adapter);

locale.addTextChangedListener(new TextWatcher(){

@Override
public void afterTextChanged(Editable s) {

}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if(!s.toString().contains(","))
{
String loc = s.toString().replace(" ", "%20");
new JsonTask(loc).execute();
adapter.notifyDataSetChanged();
locale.setAdapter(adapter);
}
}
});

我完全不知道该怎么做。我从这里的本教程开始:

http://www.gaanza.com/blog/android-autocompletetextview-mysql/

我尝试用他的自定义 AutoCompleteTextView 类来做到这一点,但与他过滤结果的方式有关的东西根本不起作用。

事情是这样的:我的 JsonTask 适本地更新了我的 String[] locationSuggestions。数据就在那里。文本框填充了从代码早期的地理编码器中提取的初始位置。当您删除建议时,除非您低于阈值然后键入最多 3 个字符,否则不会弹出任何内容。在第三个字符上,下拉菜单出现一瞬间然后消失。如果您继续输入,它不会再次出现。如果您删除该字符串,然后输入一组新的字符,下拉菜单将再次短暂弹出然后消失。

老实说,我不记得我改变了什么破坏了它。它工作正常,然后我去编辑一些布局,它停止工作了。我改变了布局,甚至仍然没有。这是我的 xml 的样子:

<AutoCompleteTextView
android:id="@+id/locationText"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_column="0"
android:layout_columnSpan="3"
android:layout_gravity="fill_horizontal|center_vertical"
android:layout_margin="10dp"
android:layout_marginBottom="40dp"
android:layout_row="2"
android:drawableLeft="@drawable/locationicon"
android:ems="10"
android:imeActionLabel="actionGo"
android:singleLine="true" >

</AutoCompleteTextView>

为了完整起见,这是我的 AsyncTask:

public class JsonTask extends AsyncTask{

private String query;
@Override
protected Void doInBackground(Object... arg0) {

JSONParser jsonParser = new JSONParser();

JSONArray array;
try {
array=jsonParser.getJSONFromUrl(url + query);

JSONObject citystate = new JSONObject();

String city;
String state;

for(int i = 0; i<5; i++)
{
citystate = array.getJSONObject(i);
state = citystate.getString("State");
city = citystate.getString("City");
locationSuggestions[i] = city + ", " + state;
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();}

return null;
}
public JsonTask(String text)
{
query = text;
}
}

最佳答案

JsonTask.onPostExecute 中,我添加了一个小的 for 循环:

for(int i = 0; i < 5; i++)
{
adapter.insert(locationSuggestions[i], i);
}

虽然 arraylist 实际上是用正确的数据更新的,但我没有用 arraylist 的内容更新适配器,所以适配器中的数据都是空的,因此没有下拉数据要显示。

呃!

关于android - 动态自动完成 TextView 建议消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23575196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com