Android 自动完全组件(SocialTokenAutoComplete)—— 一种更友好的方式@某人在社交应用中

项目地址:https://github.com/bitjjj/SocialTokenAutoComplete

代码示例:

public class SocialTokenActivity extends Activity {
    SocialContactsCompletionView completionView;
    Contact[] people;
    ArrayAdapter<Contact> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_demo);

        people = new Contact[]{
                new Contact("Marshall Weir", "[email protected]",R.drawable.author0),
                new Contact("Margaret Smith", "[email protected]",R.drawable.author1),
                new Contact("Max Jordan", "[email protected]",R.drawable.author2),
                new Contact("Meg Peterson", "[email protected]",R.drawable.author3),
                new Contact("Amanda Johnson", "[email protected]",R.drawable.author4),
                new Contact("Terry Anderson", "[email protected]",R.drawable.author0)
        };

        adapter = new FilteredArrayAdapter<Contact>(this, R.layout.contact_layout, people) {
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                if (convertView == null) {

                    LayoutInflater l = (LayoutInflater)getContext().getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
                    convertView = (View)l.inflate(R.layout.contact_layout, parent, false);
                }

                Contact p = getItem(position);
                ((TextView)convertView.findViewById(R.id.name)).setText(p.getName());
                ((ImageView)convertView.findViewById(R.id.icon_image)).setBackgroundResource(p.getIcon());
                ((TextView)convertView.findViewById(R.id.email)).setText(p.getEmail());

                return convertView;
            }

            @Override
            protected boolean keepObject(Contact obj, String mask) {
                mask = mask.toLowerCase(Locale.getDefault());

                return mask.contains("@") && obj.getName().toLowerCase(Locale.getDefault()).startsWith(mask.substring(mask.lastIndexOf("@")+1));
            }
        };

        completionView = (SocialContactsCompletionView)findViewById(R.id.searchView);
        completionView.setAdapter(adapter);

        if (savedInstanceState == null) {
            //completionView.setPrefix("To: ");
            //completionView.addObject(people[0]);
            //completionView.addObject(people[1]);
        }

    }

    private void updateTokenConfirmation() {
        StringBuilder sb = new StringBuilder("Current tokens:\n");
        for (Object token: completionView.getObjects()) {
            sb.append(token.toString());
            sb.append("\n");
        }
    }

}
时间: 2024-11-10 12:02:18

Android 自动完全组件(SocialTokenAutoComplete)—— 一种更友好的方式@某人在社交应用中的相关文章

Android为各种组件或布局添加边框 以xml方式实现

1.在drawable文件夹下新建一个border.xml文件,然后将以下代码粘贴进去,可以根据自己的需要定义不同的颜色边框,或者是只有单边.两边或三边.四边的情况,非常好控制. 2.引用 在你需要使用的组件上或者是Layout布局上以background的方式去引用border.xml就可以了.项目中如果需要多种样式边框,当然你可以将border.xml命名成不同的文件名,然后分别加以引用即可(扯多了,大家都挺牛叉的)! <?xml version="1.0" encoding

10种令人吃惊的方式你的日常生活中正在收集数据的大数据野兽

10种令人吃惊的方式你的日常生活中正在收集数据的大数据野兽 原文:http://www.bloomberg.com/slideshow/2014-06-03/10-surprising-ways-your-daily-life-is-feeding-the-big-data-beast.html 无处可逃 大数据是你日常生活中,无论你喜欢与否的重要组成部分 - 甚至是意识到这一点. 当你去看医生.去到你的手机上工作或获得方向,有一个非常好的机会,有软件在那里悄悄地收集和分析这些信息. 并依据不同

10种令人惊讶的方式你的日常生活中正在收集数据的大数据野兽

10种令人惊讶的方式你的日常生活中正在收集数据的大数据野兽 原文:http://www.bloomberg.com/slideshow/2014-06-03/10-surprising-ways-your-daily-life-is-feeding-the-big-data-beast.html 无处可逃 大数据是你日常生活中,不管你喜欢与否的重要组成部分 - 甚至是意识到这一点. 当你去看医生,去到你的手机上工作或获得方向,有一个很好的机会,有软件在那里悄悄地收集和分析这些信息.并根据不同的情

少年,是时候换种更优雅的方式部署你的php代码了

让我们来回忆下上次你是怎么发布你的代码的: 1. 先把线上的代码用ftp备份下来 2. 上传修改了的文件 3. 测试一下功能是否正常 4. 网站500了,赶紧用备份替换回去 5. 替换错了/替换漏了 6. 一台服务器发布成功 7. 登录每一台执行一遍发布操作 8. 加班搞定 9. 老板发飙 ... 尤其现在的互联网行业,讲究快速迭代,小步快跑.像bug修复或者小功能的修改几乎每天都发版本,大功能的版本迭代每周也差不多会有一次.相信不少同行们像我上面说的这样发布自己的代码吧.或者可能先进一点,直接

HTML页面-------3秒之后自动跳转的3种常用的实现方式

在练习中,我们常常遇到一种问题就是,怎么实现页面N秒之后自动跳转呢? 我自己遇到问题和查找资料,总结了3个方法 方法1: 最简单的一种:直接在前面<head>里面添加代码: <span style="font-size:18px;"> </span><span style="font-size:24px;"><meta http-equiv="refresh" content="3;

一种更好的方式设置maven pom 缺省激活的 profile

maven  profiles, 缺省激活一个 profile 有两种方式: 方式1: <activation> <activeByDefault>true</activeByDefault> </activation> 方式2: <activation> <property>!Foo<property> </activation> 方式1的问题是只要显示指定了其他的profile, 那缺省的这个就被停用了.

基于Travis CI搭建Android自动打包发布工作流(支持Github Release及fir.im)

最近付费购买了Travis CI,Travis CI的收费模式很有意思,不是按项目或者用户,而是按工作进程收费,比如初级版本是$129/月,总共提供2个工作进程.在项目不多的情况下,除了用于跑单元测试外,不免想利用的更充分一些,因此抽空搭建了一套基于Travis CI的Android自动发布工作流. 未自动化前安卓开发总是避免不了这样的工作流程: 开发一些新功能,提交代码 完成一部分功能后,打包一个测试版APK 将测试版APK上传到QQ群 / 网盘 / Fir.im / 蒲公英等 在QQ群或发布

Android自己定义组件系列【4】——自己定义ViewGroup实现双側滑动

在上一篇文章<Android自己定义组件系列[3]--自己定义ViewGroup实现側滑>中实现了仿Facebook和人人网的側滑效果,这一篇我们将接着上一篇来实现双面滑动的效果. 1.布局示意图: 2.核心代码 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); mWidth

Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示

Android JSON原生解析的几种思路,以天气预报为例 今天项目中要实现一个天气的预览,加载的信息很多,字段也很多,所以理清了一下思路,准备独立出来写一个总结,这样对大家还是很有帮助的,老司机要开车了 涉及到网络,你就一定要先添加权限,准没错 <!--网络权限--> <uses-permission android:name="android.permission.INTERNET" /> 一.归属地查询(JSONObject) 这个也是最简单的一类Json