结合意见和资源

事件监听器

列表适配器, RecyclerView 代码>实施

醇>

为什么要使用黄油刀

这个库的目的是帮助开发者写出更好的代码,并试图减少在的onCreate 代码>上的方法活动 code>类和片段代码> onCreateView 代码>>秒。您只需要在这些方法中写如下:

@覆盖

保护无效的onCreate(捆绑savedInstanceState){

super.onCreate(savedInstanceState);

// ...

ButterKnife.bind(本);

// ...

}

代码> PRE>

@覆盖

公共查看onCreateView(LayoutInflater吹气,ViewGroup中容器,

捆绑savedInstanceState){

//充气布局此片段

视图视图= inflater.inflate(R.layout.fragment_blank,容器,FALSE);

ButterKnife.bind(这一点,图)。

返回查看;

}

代码> PRE>

在箱子黄油刀结合两者到指定的Android 活动代码>或查看代码>目标,以在这些类指定的注射正确地采取行动。所有的代码视图发现线和动作监听器在其他地方实施,使这些方法尽可能干净。

结合意见和资源

奶油刀替换标准 findViewById 代码>与呼叫@BindView 代码>,后跟一个视图ID并将其自动转换在相应的布局对应的图。代码的这种表示使得更紧凑和可读性。

下面是这种“注入”的例子:

@ BindView(R.id.imageView)ImageView的图像;

@BindView(R.id.button)键按钮;

代码> PRE>

用户可在应用程序资源相同的像字符串代码>,绘制对象代码>和尺寸(扪代码>,值代码>等)。这里是所有与黄油刀可能的绑定。

@ BindString(R.string.title)字符串标题;

@BindDrawable(R.drawable.sitepoint)可绘制sitepointDrawable;

@BindColor(R.color.colorPrimary)INT primaryColor;

代码> PRE>

事件监听器

黄油刀也使得设定的Android布局视图代码>容易的事件侦听器,并删除从键的onCreate 代码>听众实施和onCreateView 代码>方法。

下面是一个例子:

@的OnClick(R.id.button)

公共无效ButtonClick(){

//执行一些动作

}

代码> PRE>

这不仅限于点击 code>的事件,在这里都可以设置其他事件。

材料设计

对于本教程的其余部分,我将重点放在注入黄油刀功能材料设计的意见和components.Open的Android Studio和创建一个基本活动的应用程序。

有什么更好的组件来测试具有比 FloatingActionButton 代码>。

公共类MainActivity延伸AppCompatActivity {

// FloatingActionButton

@BindView(R.id.fab)

FloatingActionButton FAB;

@OnClick(R.id.fab)

公共无效SnackbarNotification(查看视图){

Snackbar.make(视图,“太好了,它的工作原理与材料设计”,Snackbar.LENGTH_LONG)

.setAction( “动作”,NULL).show();

}

// ...

}

代码> PRE>

正如你可以在图片中看到它下面的工作如你所愿。

适配器

黄油刀,带有表适配器效果很好,但它也与其他材料设计类似部件的工作,如在RecyclerView code>的适配器?

建设的过程RecyclerView code>的是长期和复杂的,所以我建议你先读我的文章,解释如何。

我将集中在 RecyclerView 代码>有关黄油刀,在ViewHolder 代码>和视图结合的部分。这个例子的完整代码可以在GitHub上。

在ViewHolder 代码>示例的 RecyclerView 代码>看起来像这样(在Recycler_View_Adapter.java)。

公共类View_Holder延伸RecyclerView.ViewHolder {

@BindView(R.id.cardView)

CardView品种;

@BindView(R.id.textView)

TextView的称号;

@BindView(R.id.imageView)

ImageView的ImageView的;

View_Holder(查看ItemView控件){

超级(ItemView控件);

ButterKnife.bind(此,ItemView控件);

}

}

代码> PRE>

此 ViewHolder 代码>类表示 RecyclerView 代码>用下面的布局(row_layout.xml)的一行。

的xmlns:应用= “http://schemas.android.com/apk/res-auto”

机器人:ID = “@ + ID / cardView”

机器人:layout_width = “match_parent”

机器人:layout_height = “WRAP_CONTENT”

机器人:layout_marginBottom = “@扪/ activity_vertical_margin”

应用程式:cardCornerRadius = “8DP”

应用程式:cardElevation = “8DP”>

机器人:layout_width = “120dp”

机器人:layout_height = “110dp”

机器人:layout_alignParentTop = “真”

机器人:layout_centerHorizo??ntal = “真”

机器人:背景= “@颜色/ abc_input_method_navigation_guard”

机器人:SRC = “@绘制/ butterknife”> ImageView的>

机器人:layout_width = “WRAP_CONTENT”

机器人:layout_height = “WRAP_CONTENT”

机器人:layout_gravity = “中心|右”

机器人:layout_marginRight = “40dp”

机器人:文字=“大文本”

机器人:textAppearance = “机器人:ATTR / textAppearanceLarge”> TextView的>

机器人>

代码> PRE>

在一个活动 code>类结合的 RecyclerView 代码>和提供数据到其适配器代码>(在MainActivity.java)。

@BindView(R.id.recyclerview)

RecyclerView recyclerView;

代码> PRE>

@覆盖

保护无效的onCreate(捆绑savedInstanceState){

super.onCreate(savedInstanceState);

// ...

ButterKnife.bind(本);

//设置的RecyclerView

列表数据=新的ArrayList <>();

对于(中间体I = 0;我<15; i ++在){

//生成15种数据元素

data.add(新数据( “奶油刀”,R.drawable.butterknife));

}

Recycler_View_Adapter适配器=新Recycler_View_Adapter(数据,getApplication());

recyclerView.setAdapter(适配器);

recyclerView.setLayoutManager(新LinearLayoutManager(本));

}

代码> PRE>

结论

Android的黄油刀可帮助您创建更干净,更整洁的代码,处理了很多丑陋的样板代码是Android已经成为臭名昭著。你有没有在你的项目中尝试过?我很想知道,如果你发现它有用。

以上信息来源于网络,如有侵权,请联系站长删除。

java黄油刀_整理和优化Java代码与Android黄油刀相关推荐

  1. 围城书评_书评:优化Java

    围城书评 重要要点 Java中的性能调优是一门实验科学. JVM没有神奇的"更快"命令行开关. 没有使Java运行更快的"技巧". Java代码的执行速度是高度 ...

  2. Java安卓文字居中_设置TextView文字居中,代码实现android:layout_gravity

    设置TextView文字居中 android:gravity指的是控件的位置 而android:layout_gravity指的是这个layout的,是外面的 有2种方法可以设置TextView文字居 ...

  3. 常用的java虚拟机_带你了解 JAVA虚拟机 面试必备

    Java运行时数据区: Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途.创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有 些区域则是依赖 ...

  4. java 精通_你真的精通Java吗?

    简历和自我介绍上经常能够读到"精通Java"这样的话,有人和我说,精通Java的人太多了,精通Java已经不能算亮点.不能给自己加分了.可是事实真是这样吗? 对于语言的学习,我有一 ...

  5. 精通java益处_你真的精通Java吗?

    简历和自我介绍上经常能够读到"精通Java"这样的话,有人和我说,精通Java的人太多了,精通Java已经不能算亮点.不能给自己加分了.可是事实真是这样吗? 对于语言的学习,我有一 ...

  6. java基准测试_微基准测试进入Java 9

    java基准测试 我已经几个月没有在这里写文章了,这种例外还会继续. 我计划在明年三月左右恢复写作. 本文末尾的说明. 等待! 不完全是最后,因为您可以向下滚动. 它在文章结尾处. 继续阅读! 三年前 ...

  7. android java框架_【阿里P8大牛教你Android入门之路(java篇)】——Java集合框架(系列篇1)...

    一.前言 本部分内容主要包含以下: Java集合 Java反射 Java注解 Java反射 Java IO 其他面试点 以上内容都是Java中的基础知识,对于Java的学习很有帮助.其中集合.反射.I ...

  8. Java继承_这10道Java面试题!大部分的人回答不出来

    1.为什么等待和通知是在 Object 类而不是 Thread 中声明的? 2.为什么Java中不支持多重继承? 3.为什么Java不支持运算符重载? 4.为什么 String 在 Java 中是不可 ...

  9. java 汇编_大话+图说:Java 汇编指令——只为让你懂

    原标题:大话+图说:Java 汇编指令--只为让你懂 前言 随着Android开发技术不断被推到新的高度,对于Android程序员来讲越来越需要具备一些对深入的基础性的技术的理解,比如说Java汇编指 ...

最新文章

  1. 使用spdevelop进行数据库建模
  2. angular学习笔记(十九)-自定义指令修改dom
  3. php thumbs.db,window_Win8系统删除thumbs.db文件的方法,  最近有Win8系统用户反映, - phpStudy...
  4. Teams Meeting App的 task 弹出框
  5. Java设计模式笔记(8)装饰模式
  6. OpenShift 4 - 使用ArgoCD Operator
  7. virtualenv -- python虚拟沙盒
  8. 华为手机解锁码计算工具_手机计算器全线阵亡?小编实测苹果、华为、三星……...
  9. 详解如何使用 DosBox 安装 Windows 95 操作系统
  10. Make sure that `gem install libv8 -v '3.16.14.3'` succeeds before bundling.
  11. excel查重复_毕业季论文查重攻略,手把手教你降低重复率!
  12. sqlite数据库的版本更替
  13. 关于《论文写作》课程的心得和体会
  14. 以开发之名|线上家装新美学——梦想之家,由你来定
  15. react navigation 中使用goBack()跳转到指定页面
  16. C语言|《C Primer Plus》|数据类型
  17. 服务器系统部署方案,系统部署方案.doc
  18. 解决win7开机显示用户名或密码错误
  19. Yolo-v1~v3学习关键点整理
  20. 张岩 重庆大学 计算机学院,【学院之星】第二期

热门文章

  1. 设计模式及C++实现
  2. 将IDEA快捷键设置成eclipse
  3. Linux系统中动态库和静态库的区别
  4. 53KF客服系统发展未来式
  5. 做网站应该搭建哪些功能栏目管理模块?
  6. 基于react-redux深度学习智能神经网络匹配飞行航线算法系统,让包机变得更加高效与智能
  7. 【Unity】动作游戏开发实战详细分析-15-可扩展的战斗系统
  8. 部署.net core webAPI 访问wwwroot静态图片 500错误
  9. 在Windows中安装iPhone开发环境
  10. Python程序的错误:变量未定义(NameError: name ‘mesage’ is not defined.)