首页
网站首页
公司简介
资讯中心
推荐内容
返回顶部
Studio各种快捷功能及好用的插件,Item中使用EditText刷新问题扫坑
发布时间:2020-03-23 10:17
浏览次数:

在日常开发中,我们经常需要用到上传图片的 功能,这个时候通常有两种做法,第一种,从相机获取,第二种,从相册获取。今天这篇博客主要讲解利用系统的Intent怎样获取?

如果本文帮助到你,本人不胜荣幸,如果浪费了你的时间,本人深感抱歉。希望用最简单的大白话来帮助那些像我一样的人。如果有什么错误,请一定指出,以免误导大家、也误导我。本文来自:http://www.jianshu.com/users/320f9e8f7fc9/latest_articles感谢您的关注。

感谢:CSDN的yissan感谢:简书的咖枯我只是搬运工。文章最后附上他们文章网址。

项目中需要用到一个高度动态的布局用于录入用户信息,信息类型以及参数字段等全来自后台。因此需要用RecyclerView来动态显示,同时使用Item多布局来对应不同类型的信息录入(log:提前已知所有可能输入的类型),这里记录一下自己的解决方式,以及item中使用EditText碰到的问题(欢迎吐槽,互相交流)

www.64222.com,主要内容如下

项目地址为:https://github.com/roughike/BottomBar新版本与老版本用法区别较大,所以重写。

------------------------------我是代码界的搬运工--------------------------------------

先来看下需要实现的界面效果

www.64222.com 1整体布局结构.png

这里可以看到尾巴上一步,下一步布局也通过占用一个item的方式来实现footerView的效果,从图中可以直观的看出当前页面一共有3种布局,其中item_type_1中用到了EditText,item_type_2中使用TextView来展示地址选择结果,item_type_3使用两个TextView来制作按钮。

  • 怎样通过相机获取我们的图片
  • 怎样启动相册获取我们想要的图片
  • 在Android 6.0中的动态权限处理】
  • 调用系统Intent和自定义相册的优缺点对比

注意:此库最低支持版本是 api 11

概述

现如今开发越来越追求效率和节奏,节省出时间做更多的事情,除了开发技术上的封装等,开发工具的使用技巧也是很重要的,今天就根据自己的经验来给大家介绍一下Android Studio快速开发之道。

一、RecyclerView多布局的使用

没错,还是老套路,重点一定在Adapter,并且这里会使用到getItemViewType()方法来指定待显示的item布局。这里为了简单明了,直接使用未封装的 RecyclerView.Adapter。重要代码如下:

//一共5种布局private static final int TYPE_EDITTEXT = 1;//editText布局private static final int TYPE_EDITADDRESS = 2;//地址选择器布局private static final int TYPE_GETCODE = 3;//动态获取数据private static final int TYPE_EDITIDCARD = 4;//身份信息提交布局private static final int TYPE_FOOTERVIEW = 5;//底部下一步 布局

//通过重写getItemViewType(int position)方法来告诉onCreateViewHolder每个条目对应的布局 @Override public int getItemViewType(int position) { switch (fieldsList.get.getInput_type { case 1: return TYPE_EDITTEXT; case 2: return TYPE_EDITADDRESS; case ... } return TYPE_FOOTERVIEW; }

//返回不同布局对应的ViewHolder @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch  { case TYPE_EDITTEXT: return new EditTextItemHolder(LayoutInflater.from.inflate(R.layout.item_rv_type_edittext, parent, false)); case TYPE_EDITADDRESS: return new EditAddRessItemHolder(LayoutInflater.from.inflate(R.layout.item_rv_type_editaddress, parent, false)); case ... } return new FooterViewHolder(LayoutInflater.from.inflate(R.layout.item_rv_type_footview, parent, false)); }

//当然,每种item都需要有自己的ViewHolder class EditIDCardItemHolder extends RecyclerView.ViewHolder { public EditIDCardItemHolder(View itemView) { super; } } ...

//onBindViewHolder()中绑定数据 也需要知道当前布局属于哪个item @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { final FieldInfoBean bean = fieldsList.get; if (holder instanceof EditTextItemHolder) { ... } }

是不是发现RecyclerView的多布局实现其实也是十分简单呢。

总共有两种方式,

显示效果图:

Postfix completion

Postfix completion 是IntelliJ IDEA很早就有的功能,该功能基于已经输入的表达式和你添加的后缀来实现另一个你想要的表达式。例如在布尔表达式之后加上后缀if就是if语句 。常用后缀介绍下面介绍一下个人工作中觉得比较常用的几个后缀。

  • cast

    当一个变量需要类型转换时,你是不是经常多次回退到变量名前面,然后括号再输入类型,现在你只需要.cast之后潇洒的输入类型。 www.64222.com 2

  • if对于if语句你有更好的选择,.if

    www.64222.com 3

  • elseelse就是if取反,就是那么快

    www.64222.com 4

  • field假设你的代码写了很长,突然在1000行的时候要给一个变量赋值并且声明为全局变量,难道要返回去重新声明吗,简直麻烦。有了field,在哪都可以。

    www.64222.com 5

  • fori简单快速for循环,就是那么吊

    www.64222.com 6

  • forfor循环第二式,增强for循环(使用.iter也是同样的效果)

    www.64222.com 7

  • forrfor循环第三式,反向for循环 .forr

    www.64222.com 8

  • null快速判空

    www.64222.com 9

  • nn/notnull快速判断非空 .nn,与.notnull效果一致

    www.64222.com 10

  • switch.switch 通过字符串枚举等类型的对象直接生成switch语句

    www.64222.com 11

  • inst/instantsof快速进行instanof判断 并进行类型转换

    www.64222.com 12

  • var快速为一个表达式生成变量

    www.64222.com 13

  • par快速为一个表达式添加括号

    www.64222.com 14

  • log快速log,想输出的内容.log即可

    www.64222.com 15

  • toast快速toast,想输出的内容.toast即可

    www.64222.com 16

    除了以上的后缀语句,Android Studio还有很多其它的后缀语句,由于个人觉得不是很常用,所以没有提到,大家可以打开setting-Editor-General-Postfix Completion查看更多用法。下面贴一张Postfix Completion的图

    www.64222.com 17

二、RecyclerView中使用EditText

网上看到博友在ListView中使用EditText时,点击editText后软键盘弹出后会导致光标失去焦点,这里我在使用RecyclerView的时候并没有发现光标问题,这里先跳过光标问题。

友情链接: 网站地图
Copyright © 2015-2019 http://www.nflfreepicks.net. 新葡萄京娱乐场网址有限公司 版权所有