当前位置: 首页 > 知识库问答 >
问题:

自定义AutoCompleteView(类似于android中的facebook评论

李安歌
2023-03-14

我想像这样自定义AutoCompleteView..

当我的特殊字符被添加时,它应该被填充(比如facebook...当你输入@b,那么所有名字以'b'开头的朋友都将被填充,我们可以选择名字)。

在添加“@”之前,不应在键入时填充它。

我必须自己试试,但让我在实现customview之前先问问,以节省时间。

共有1个答案

方坚壁
2023-03-14

您必须通过扩展类来自定义autocompleteview..和要更改的问题中提到的代码。

public class CustomAutoComplete extends AutoCompleteTextView {
private String previous = "";
private String seperator = "@";
boolean isState = false;

public CustomAutoComplete(final Context context, final AttributeSet attrs,
        final int defStyle) {
    super(context, attrs, defStyle);
    this.setThreshold(1);

}

public CustomAutoComplete(final Context context, final AttributeSet attrs) {
    super(context, attrs);
    this.setThreshold(1);
}

public CustomAutoComplete(final Context context) {
    super(context);
    this.setThreshold(1);
}

/**
 * This method filters out the existing text till the separator and launched
 * the filtering process again
 */
@Override
protected void performFiltering(final CharSequence text, final int keyCode) {
    String filterText = text.toString().trim();
    String lastchar = filterText.substring(filterText.length() - 1,
            filterText.length());
    if (filterText.length() == 1) {
        if (lastchar.equals(seperator)) {
            isState = true;
        } else {
            isState = false;
        }
    }
    previous = filterText.substring(0,
            filterText.lastIndexOf(getSeperator()) + 1);

    filterText = filterText.substring(filterText
            .lastIndexOf(getSeperator()) + 1);

    if ((lastchar.equals(seperator)) || isState) {
        super.performFiltering(filterText, keyCode);

        isState = true;

    }
}

/**
 * After a selection, capture the new value and append to the existing text
 */
@Override
protected void replaceText(final CharSequence text) {
    isState = false;
    super.replaceText(previous + text);// + getSeperator());

}

public String getSeperator() {
    return seperator;
}

public void setSeperator(final String seperator) {
    this.seperator = seperator;
}

}

希望这能帮到你...

 类似资料:
  • 我正在寻找一个像facebook应用那样的滑动菜单,即点击左侧菜单按钮,主屏幕向右滑动,然后点击“查看全部”,在幻灯片视图屏幕上,一个新的视图从右向左滑动。

  • 添加几条影片记录 在下面的章节中,我们需要一些示例数据,可以从 IMDB 复制一些数据过来。 如果你不想浪费时间输入这些示例数据,可以从下面的链接中获取迁移类: https://github.com/volkanceylan/MovieTutorial/blob/master/MovieTutorial/MovieTutorial.Web/Modules/Common/Migrations/Def

  • 自定义字段标题 在我们影片列表和表单中,有一个叫 Runtime 的字段。该字段需要一个整数,表示影片时长(minutes),但在其标题描述中并没有该提示信息。让我们把其标题改为 Runtime (mins)。 有几种方法可以修改标题内容:修改服务器端表单的定义、修改服务器端列的定义、修改网格列表的脚本代码等。但让我们在核心的位置做修改,即修改实体本身,这样实体的标题在所有使用的地方都将得到修改。

  • 在自定义arrayAdapter中实现自定义getFilter时遇到问题。实际上,我不知道如何实现它。尝试了各种代码,但仍然没有成功。这是我的自定义阵列适配器。 这是ListTO课程。 这是布局图。 这里的搜索关键字来自“inputSearch”编辑文本。 这是文本更改的侦听器。 谢谢

  • 考虑到以下情况: lambda通过SQS接收事件 现在我们监控一个自定义的错误计数指标,如。这为我们提供了错误发生次数的确切数字-独立于特定实体:如果一个实体不能像100次那样被处理,那么度量值将是。 不过,我想要的是一个基于UUID的独特度量。例子: id为123的实体失败10次 id为456的实体成功 id为789的实体失败20次 然后我想要一个值为的度量,因为流程只对两个实体失败(而不是像现

  • 本文向大家介绍Android自定义View仿大众点评星星评分控件,包括了Android自定义View仿大众点评星星评分控件的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android仿大众点评星星评分控件的具体代码,供大家参考,具体内容如下 话不多说,直接上代码,这里采用的是自定View 自定义属性 xml 配置 在activity里 rb指的是 RatingBar rb; 大概就