开源库Undobar简单使用解析

简介:

转载请注明出处:王亟亟的大牛之路
最近不忙在翻Git的时候发现这个自定义吐司(Toast)的开源库,就写这篇博文我分享给大家,话不多说线上截图(貌似很多截屏录像的APP都掏ROOT,测试机懒得弄,有知道其他方法的小伙伴帮忙推荐哈)
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

一些自定义的吐司和Animation,在不适用Dialog想用吐司省立的时候还是一个不错的选择哦!

包目录
这里写图片描述
一个Demo包,一个Lib包,Lib包里的东西其实不多,可以把它抠出来放在自己的项目目录里,就可读性稍微更高点。

举例分析:
这是其中一个效果的Activity是,我们来分析一下在自己做的时候要做些什么?

//必须实现 UndoBarController.AdvancedUndoListener来处理吐司内部的点击事件
public class UndoStyle extends AppCompatActivity implements UndoBarController.AdvancedUndoListener, AdapterView.OnItemClickListener {

    private ArrayAdapter<String> mAdapter;

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ui_main);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        ListView listView = (ListView) findViewById(R.id.listView);
        listView.setAdapter(mAdapter = new ArrayAdapter<>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1,
                Arrays.asList(new String[]{"Item 1", "Item 2", "Item 3",
                        "Item 4", "Item 5", "Item 6", "Item 7", "Item 8",
                        "Item 9", "Item 10", "Item 11", "Item 12", "Item 13",
                        "Item 14", "Item 15",})
        ));
        listView.setOnItemClickListener(this);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuItem item = menu.add(0, 0, 0, "Clear");
        MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
        return super.onCreateOptionsMenu(menu);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home)
            finish();
        else
            new UndoBarController.UndoBar(this).clear();
        return true;
    }

    @Override
    protected void onPause() {
        super.onPause();

    }
    //刚才提到的监听事件所实现的方法,分别是onUndo,onHide,onClear处理过程中的具体逻辑
    @Override
    public void onUndo(final Parcelable token) {
        if (token != null) {
            final int position = ((Bundle) token).getInt("index");
            Toast.makeText(this, "undo clicked, index " + position,
                    Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onHide(Parcelable token) {
        if (token != null) {
            final int position = ((Bundle) token).getInt("index");
            Toast.makeText(this, "UndoBar hided! index " + position,
                    Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onClear(@Nullable Parcelable[] tokens) {
        for (Parcelable token : tokens) {
            final int position = ((Bundle) token).getInt("index");
            Toast.makeText(this.getApplicationContext(), "UndoBar cleared! index " + position,
                    Toast.LENGTH_SHORT).show();
        }
    }
    //在ListView的监听事件里分发Bundle对象给予上面的3个方法进行业务处理
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        final Bundle b = new Bundle();
        b.putInt("index", position);

        new UndoBarController.UndoBar(this).message(mAdapter.getItem(position)
                + " was selected").listener(this).token(b).show();
    }
}

下载地址:http://yunpan.cn/ccyQUMpwUqUvL 访问密码 fadc
因为在Build过程中可能会有Gradle Build的蛋疼情况,如果遇到了相关问题,可以点击Gradle Build那些事,希望可以帮到你。

谢谢,有问题欢迎+Q 452270579 请注明来意与来源

目录
相关文章
|
6天前
|
数据采集 JSON 数据可视化
利用R语言和curl库实现网页爬虫的技术要点解析
利用R语言和curl库实现网页爬虫的技术要点解析
|
6天前
|
算法 Linux 开发者
CMake深入解析:打造高效动态链接库路径设置
CMake深入解析:打造高效动态链接库路径设置
55 0
|
6天前
|
自然语言处理 数据可视化 数据挖掘
带你飞上云端,轻松解析数据——gopup库详细解析--包含安装库教程
本文介绍了Python库gopup,它是一个用于轻松爬取互联网数据的工具,简化了数据收集和处理的过程。文章提供了gopup的安装教程,特别强调了安装时需注意setuptools版本,并给出了PyCharm和命令行两种安装方法。gopup库能获取包括指数、百度和谷歌数据等多种类型的数据。文中还展示了如何使用gopup获取微博指数和豆瓣新片榜数据,并通过代码示例呈现数据和图表。此外,文章提醒了使用时的风险和部分接口的失效情况,并提供了库文档链接以供深入学习。gopup库适用于数据可视化和数据分析,是进行文本挖掘和自然语言处理项目的理想工具。
带你飞上云端,轻松解析数据——gopup库详细解析--包含安装库教程
|
6天前
|
XML JavaScript 数据格式
Beautiful Soup 库的工作原理基于解析器和 DOM(文档对象模型)树的概念
【5月更文挑战第10天】Beautiful Soup 使用解析器(如 html.parser, lxml, html5lib)解析HTML/XML文档,构建DOM树。它提供方法查询和操作DOM,如find(), find_all()查找元素,get_text(), get()提取信息。还能修改DOM,添加、修改或删除元素,并通过prettify()输出格式化字符串。它是处理网页数据的利器,尤其在处理不规则结构时。
38 2
|
6天前
|
JSON 人工智能 算法
pyjwt,一个强大的 Python JWT解析校验库!
pyjwt,一个强大的 Python JWT解析校验库!
26 0
|
6天前
|
存储 算法 程序员
C++从入门到精通:2.2.1标准库与STL容器算法深度解析
C++从入门到精通:2.2.1标准库与STL容器算法深度解析
|
6天前
|
存储 JSON JavaScript
【嵌入式开源库】cJSON的使用,高效精简的json解析库
【嵌入式开源库】cJSON的使用,高效精简的json解析库
|
6天前
|
Kubernetes 网络协议 定位技术
阿里云DNS常见问题之IP地理位置库功能开通失败如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
6天前
|
算法 IDE Linux
【CMake 小知识】CMake中的库目标命名和查找策略解析
【CMake 小知识】CMake中的库目标命名和查找策略解析
118 1
|
6天前
|
安全 网络性能优化 Android开发
深入解析:选择最佳C++ MQTT库的综合指南
深入解析:选择最佳C++ MQTT库的综合指南
121 0

推荐镜像

更多