11-06 19:52:25.958:E/AndroidRuntime(29609):java.lang.IllegalStateException:适配器的内容已更改,但ListView未收到通知.确保不从后台线程修改适配器的内容,而只是从UI线程修改.[在ListView(-1,类android.widget.ListPopupWindow $ DropDownListView)中使用Adapter(类com.example.parkfoxxlight_android.PlacesAutoCompleteAdapter)]
完整日志:http://pastebin.com/Hx7k28Rm
适配器的完整代码:http://pastebin.com/TfH1bXE3我使用的是https://developers.google.com/places/training/autocomplete-android中的示例,它有相当的默认代码,因此它似乎有一个谷歌代码中的错误?
应用程序有时会崩溃,但上面的错误消息.
protected void publishResults(CharSequence constraint,
FilterResults results) {
if (results != null && results.count > 0) {
notifyDataSetChanged();
} else {
notifyDataSetInvalidated();
}
}
Run Code Online (Sandbox Code Playgroud)
活动http://pastebin.com/FYzYtvXY:
public class CityActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.city);
AutoCompleteTextView autoCompView = (AutoCompleteTextView) findViewById(R.id.autocomplete_city);
PlacesAutoCompleteAdapter ad = new PlacesAutoCompleteAdapter(this);
ProgressBar b = (ProgressBar)findViewById(R.id.progressBar1);
ad.setLoadingIndicator(b);
autoCompView.setAdapter(ad);
}
}
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这一问题?我在android 4.3上.
如何在下拉菜单中更改文本颜色AutoCompleteTextView?或者我如何更改下拉列表的背景颜色,默认情况下,下拉列表的背景颜色为白色.

请帮我解决这个问题:
我想在自动填充文本视图中搜索时显示国家/地区和代码,并且其工作正常,但我获得两次值而不是单值.
MainActivity.java:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] countries = new String[] {
"Allentown",
"Albuquerque","Aberdeen","Acapulco","Waco","Atlantic City",
"Marka-Amman","Pittsburgh","Augusta","Auckland","Albany",
"Amarillo","Amman","Amsterdam","Anchorage","Antwerp",
"Naples","Aqaba","Stockholm","Aspen","Asuncion"......};
String[] codes=new String[]{
"ABE","ABQ","AMS","ANC","ANR","APF","AQJ","ARN","ASE","ASU","ATH",
.............};
List<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
for(int i=0;i<countries.length;i++){
HashMap<String, String> curGroupMap = new HashMap<String,String>();
curGroupMap.put("country", countries[i]);
curGroupMap.put("code", codes[i]);
list.add(curGroupMap);
}
final AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
SimpleAdapter adapter =
new SimpleAdapter(getBaseContext(), list, R.layout.twolist, new String[] {"code","country"}, new int[] { R.id.textView1,R.id.textView2});
textView.setAdapter(adapter);
textView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> …Run Code Online (Sandbox Code Playgroud) 所以我的应用程序中有一个autocompletetextview字段,我希望用户输入他的电子邮件地址.现在,为了帮助他更快地输入它并且不犯错误,我想在输入时向他推荐最常见的电子邮件域服务器.
我正在使用该控件与此数组
String[] arraymails ={"@gmail.com","@hotmail.com","@yahoo.com","@outlook.com"};
Run Code Online (Sandbox Code Playgroud)
这在oncreate中
mEmailView = (AutoCompleteTextView) findViewById(R.id.register_email);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arraymails);
mEmailView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
这个想法是,当用户键入"@"字符然后"g"时,它会建议@ gmail.com.
如果我直接在文本框中输入"@g .."但是如果我之前输入任何内容,例如"john @ gm",它将无法正常工作.
是否有任何通配符,如"*@gmail.com"这样做?或者我该如何实施呢?
谢谢