IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 近段时间的学习碎片整理(9) -> 正文阅读

[移动开发]近段时间的学习碎片整理(9)

1、viewpager适配器的写法

list可以是要传入fragment的参数

class ViewPagerAdapter(fm: FragmentManager,private val list: Array<String>):
    FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT){
    override fun getCount(): Int = 4

    override fun getItem(position: Int) :Fragment{
        return PracticePageFragment.newInstance(list[position])
    }

    override fun getPageTitle(position: Int): CharSequence? {
        return list[position]
    }

}

在fragment里面的companion object

companion object {
        const val FRAGMENT_PRACTICE_TYPE = "FRAGMENT_PRACTICE_TYPE"
        fun newInstance(type:String): PracticePageFragment{
            val bundle = Bundle()
            bundle.putString(FRAGMENT_PRACTICE_TYPE, type)
            val practicePageFragment = PracticePageFragment()
            practicePageFragment.arguments = bundle
            return  practicePageFragment
        }
    }

2、犯了一个很笨的错误,在使用androidpicker时候,不断的初始化这个控件,事实上只需要初始化一次就行

????????

private var pvTime: TimePickerView? = null
 private fun initTimePicker() {
            pvTime = TimePickerBuilder(mContext) {
                date, _ ->
            currentDate = date.time
            val dateToString = Utils.dateToString(date)
            binding.tvCalendar.text = dateToString
            getNewData(dateToString)
        }.build()
    }

可以通过setdate来设置打开时候的默认选项

      val stringToDate = Utils.stringToDate(formatLongMonthDayString2)
            val cal = Calendar.getInstance()
            cal.time = stringToDate
            pvTime?.setDate(cal)

3、如何获取手机网络在公网上的ip(参考Android 获取外网IP,实测有效 - 飞剑 - 博客园

????????

 /**
     * 获取外网的IP(要访问Url,要放到后台线程里处理)
     *
     * @param @return
     * @return String
     * @throws
     * @Title: GetNetIp
     * @Description:
     */
    fun getNetIp(): String? {
        var infoUrl: URL? = null
        var inStream: InputStream? = null
        var ipLine = ""
        var httpConnection: HttpURLConnection? = null
        try {
//            infoUrl = new URL("http://ip168.com/");
            infoUrl = URL("http://pv.sohu.com/cityjson?ie=utf-8")
            val connection: URLConnection = infoUrl.openConnection()
            httpConnection = connection as HttpURLConnection
            val responseCode: Int = httpConnection.getResponseCode()
            if (responseCode == HttpURLConnection.HTTP_OK) {
                inStream = httpConnection.getInputStream()
                val reader = BufferedReader(
                    InputStreamReader(inStream, "utf-8")
                )
                val strber = StringBuilder()
                var line: String? = null
                while (reader.readLine().also { line = it } != null) {
                    strber.append(
                        """
                        $line
                        
                        """.trimIndent()
                    )
                }
                val pattern: Pattern = Pattern
                    .compile("((?:(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))")
                val matcher: Matcher = pattern.matcher(strber.toString())
                if (matcher.find()) {
                    ipLine = matcher.group()
                }
            }
        } catch (e: MalformedURLException) {
            e.printStackTrace()
        } catch (e: IOException) {
            e.printStackTrace()
        } finally {
            try {
                inStream?.close()
                httpConnection?.disconnect()
            } catch (e: IOException) {
                e.printStackTrace()
            } catch (ex: Exception) {
                ex.printStackTrace()
            }
        }
        Timber.d("getNetIp = $ipLine")
        return ipLine
    }

4、踩坑:高德ip定位现在只在WiFi状态下才能获取到定位信息,在流量状态下是获取不到的,所以需要使用高德ip定位2.0,先获取网络在公网上的ip然后再去进行ip定位。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-01-04 13:32:50  更:2022-01-04 13:35:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:38:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码