我的应用程序中有一个AutoCompleteTextView.该应用程序使用Facebook SDK.我按照SO:https://stackoverflow.com/a/12363961/450534这个问题的代码跟踪了点,并且有一个功能正常的搜索(过滤)活动.
现在,如何在键入@符号后获得类似Facebook App的内联自动完成功能,并且仍然保留用户键入的其他文本?有问题的活动是针对状态更新,可以包含用户的好友以及其他文本.的AutoCompleteTextView或EditText自然会多行之一.有关状态更新,请参阅.
我知道由于这篇文章中没有任何代码,我可能会被投票或甚至关闭问题.但它确实是一个标准的锅炉板列表过滤代码.
编辑:Android 的FriendCaster应用程序也是如此.
这是我之前的问题的后续跟进:Android:自动完成TextView类似于Facebook应用程序.
的背景:
我在问题中的要求(上面发布的链接)AutoCompleteTextView与Facebook应用程序中使用的类似,其他几个也是如此.解决方案是使用多线路.MultiAutoCompleteTextView这个想法是让用户在创建状态更新时直接输入他们的好友名称.答案中的解决方案从独立的角度来看很好.但是,当我盯着在现有代码中集成解决方案时,它仍然适用于正确的下拉列表等等.感谢来自这里的解决方案,我看到了我朋友的过滤列表:https://stackoverflow.com/a/12363961/1350013.我用一个自定义的ListView一个BaseAdapter,而不是GridView从溶液中.
问题:
我的代码使用了一个BaseAdapter实现Filterable.如上所述,工作正常.
当我从筛选列表中选择一个朋友时,问题出在哪里.的MultiAutoCompleteTextView,选择后,显示此:@MY_PACKAGE_NAME.Friends.getFriends@406c1058而不是朋友的名字.我需要更改什么来显示名称而不是乱码文本?如果它有帮助,那么我在第一类中运行它来扩展a SherlockActivity而不是a SherlockListActivity.
现在我不确定相关代码是什么,以找出问题所在的位置,因此我将尽可能多地发布相关代码.我是一个菜鸟,所以请轻松并要求任何额外的代码.我会及时遵守.同样,如果不需要这里的东西使帖子混乱,我将删除它.
代码块
来自我之前的问题的解决方案中的Tokenizer.链接在顶部(在onCreate()方法中)
editStatusUpdate = (MultiAutoCompleteTextView) findViewById(R.id.editStatusUpdate);
editStatusUpdate.addTextChangedListener(filterTextWatcher);
editStatusUpdate.setTokenizer(new Tokenizer() {
@Override
public CharSequence terminateToken(CharSequence text) {
int i = text.length();
while (i > 0 && text.charAt(i - 1) == ' ') {
i--;
}
if (i > 0 && text.charAt(i - …Run Code Online (Sandbox Code Playgroud) 早期问题取得了一些进展.现在有一个新问题.GridView中的文本显示正确的结果.但是,图像与列表开头的图像相同.
例如:如果我搜索" Sidd ",它会显示三个结果,但照片仍然以" A " 开头的用户开头.附件是一个清晰的屏幕截图.
这是BaseAdapter代码:
public class TagFriendsAdapter extends BaseAdapter implements Filterable {
List<String> arrayListNames;
List<String> mOriginalNames;
List<String> arrayPictures;
List<String> mOriginalPictures;
Activity activity;
String[] fetFriendID;
String[] fetFriendName;
String[] fetFriendPicture;
LayoutInflater inflater = null;
ImageLoader imageLoader;
TagFriendsAdapter(Activity a, String[] stringUID, String[] stringName, String[] stringPicture,
ArrayList<String> arrayName, ArrayList<String> arrayPicture) {
activity = a;
fetFriendID = stringUID;
fetFriendName = stringName;
fetFriendPicture = stringPicture;
this.arrayListNames = arrayName;
this.arrayPictures = arrayPicture;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader = new ImageLoader(activity.getApplicationContext());
}
public int getCount() …Run Code Online (Sandbox Code Playgroud)