栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android console 的一种简单实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android console 的一种简单实现

老铁们好,最近要公司测试人员做一个测试工具,需要实现一个 console 来展示测试结果,简单实现了一下,备忘一下,以后有类似需求直接此处拿代码

其实现要点是

1 layout xml

使用一个 ScrollView 的目的是让这个 console 能滚动,否则容纳不了多少内容,其实 TextView 自己也能实现滚动,不过据我观察,效果不咋地

    

        

    

2 在 Activity 中我们把 View 找出来

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.{your-layout})
        console = findViewById(R.id.mpt_console)
        consoleScroller = findViewById(R.id.mpt_console_container)
        。。。
}

3 封装一个 console 方法

直接把我们需要展示的信息 append 到 TextView 上,为了展示最新 log,我们给它自动滚动到底部

    private fun console(msg: String) {
        console.append("$msgnn")
        consoleScroller.post { consoleScroller.fullScroll(View.FOCUS_DOWN) }
    }

4 再给一个清除日志和复制日志的入口吧,放到右上角菜单里面,注意我们的 Activity 用得是 AppCompatActivity,这样,才能有 ActionBar 呦

    private val groupId = 0
    private val itemClearId = 1
    private val itemCopyId = 2
    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menu?.add(groupId, itemClearId, Menu.NONE, R.string.mpt_clear_log)
        menu?.add(groupId, itemCopyId, Menu.NONE, R.string.mpt_copy_log)
        return true
    }

    override fun onOptionsItemSelected(item: MenuItem?): Boolean {
        item ?: return false
        when (item.itemId) {
            itemClearId -> console.text = ""
            itemCopyId -> {
                (getSystemService(CLIPBOARD_SERVICE) as ClipboardManager).primaryClip = ClipData.newPlainText("", console.text)
                toast(R.string.mpt_copy_success)
            }
        }
        return true
    }

是不是很简单呢,老铁们,以后遇到这样的需求直接来 copy 代码就行了,最终效果

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/736206.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号