我为AutoCompleteTextView编写了一个自定义Filter.它工作正常,但一件小事.performFiltering上的Constraint在第一个字符上为null.这意味着只有在将第二个字符放入AutoCompleteTextView时才会启动过滤进程.
这是Filter的代码:
private Filter nameFilter = new Filter() {
public String convertResultToString(Object resultValue) {
String fullName = ((User)(resultValue)).facebookName;
return fullName;
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
if(constraint != null) {
suggestions.clear();
for (User friend : allFriends) {
if(friend.facebookName.toLowerCase().contains(constraint.toString().toLowerCase())){
suggestions.add(friend);
}
}
FilterResults filterResults = new FilterResults();
filterResults.values = suggestions;
filterResults.count = suggestions.size();
return filterResults;
} else {
return new FilterResults();
}
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
ArrayList<User> filteredList = (ArrayList<User>) results.values;
if(results != null && …Run Code Online (Sandbox Code Playgroud) 我已经遇到麻烦,因为Facebook删除了offline_access权限.
尝试了两件事:
我正在按照Facebook的建议打电话.
https://graph.facebook.com/oauth/access_token?
client_id=APP_ID&
client_secret=APP_SECRET&
grant_type=fb_exchange_token&
fb_exchange_token=EXISTING_ACCESS_TOKEN
Run Code Online (Sandbox Code Playgroud)我还尝试了Android SDK,它使用intent获取扩展访问令牌:
intent.setClassName("com.facebook.katana", "com.facebook.katana.platform.TokenRefreshService");
Run Code Online (Sandbox Code Playgroud)在developers.facebook.com我将我的应用程序设置为"Native/Desktop".
我也禁用了offline_access应用程序设置.
在尝试之前,我从我的Facebook帐户中删除了旧的权限.
这两种方法都为我提供了24小时的令牌.也许有人可以帮助我拨打正确的电话获得60天代币?
我看到了很多关于这个问题的bug报告,但是他们也解决了.看起来不像我的情况.