我的目标

android - Gmail,例如联系人选择器/标签云/芯片云以及个人资料图片android-LMLPHP

发送电子邮件时,要像gmail一样创建联系人选择器(左侧带有圆形图像)。我已经进行了一些研究,找到了EditText云和Chip Cloud,但是它们不支持自定义布局中的图像,并且适配器仅接受List<String>。有人对如何实现此目标有正确的想法,还是使用库来实现这一目标。

提前致谢。

最佳答案

我建议您使用TokenAutoComplete

public class ContactsCompletionView extends TokenCompleteTextView<Person> {
    public ContactsCompletionView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected View getViewForObject(Person person) {

        LayoutInflater l = (LayoutInflater) getContext().getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        TextView view = (TextView) l.inflate(R.layout.contact_token, (ViewGroup) getParent(), false);
        view.setText(person.getEmail());

        return view;
    }

    @Override
    protected Person defaultObject(String completionText) {
        //Stupid simple example of guessing if we have an email or not
        int index = completionText.indexOf('@');
        if (index == -1) {
            return new Person(completionText, completionText.replace(" ", "") + "@example.com");
        } else {
            return new Person(completionText.substring(0, index), completionText);
        }
    }
}


输出:

android - Gmail,例如联系人选择器/标签云/芯片云以及个人资料图片android-LMLPHP

09-13 01:57