viewholder

列表视图ListView

烂漫一生 提交于 2020-02-28 14:23:02
一、常用属性 android : layout_width = "match_parent" android : layout_height = "match_parent" android : orientation = "horizontal" > < ListView android : id = "@+id/lv_1" android : layout_width = "match_parent" android : layout_height = "wrap_content" android : listSelector = "@drawable/list_item" / > //这是列表选择器,在这可以通过drawab文件来修改列表的样式 下面是drawable/list_item的内容,当我点击列表是他是橙色的,否则就是白色 < selector xmlns : android = "http://schemas.android.com/apk/res/android" > < item android : state_selected = "true" android : drawable = "@color/colorOrange" / > < item android : state_pressed = "true" android : drawable = "

第三章UI

若如初见. 提交于 2020-02-24 14:21:22
常用控件 textview match_parent:和父局大小一样 wrap_content:由内容决定大小 文字对齐方式: android : gravity = "center" button 默认字母全部大写 禁用大写: android : textAllCaps = "false" edittext 提示性文本: android : hint = "请输入" 解决内容过大问题: android : maxLines = "2" imageview progressbar 圆形进度条 public void onClick ( View view ) { if ( progressBar . getVisibility ( ) == View . GONE ) { progressBar . setVisibility ( View . VISIBLE ) ; } else { progressBar . setVisibility ( View . GONE ) ; } } 长形进度条 style = "?android:attr/progressBarStyleHorizontal" android : max = "100" AlertDialog 弹出对话框 public void onClick ( View view ) { AlertDialog .

Android - RecyclerView进阶(1)—LayoutInflater

若如初见. 提交于 2020-02-24 13:53:39
我的CSDN: ListerCi 我的简书: 东方未曦 RecyclerView是项目中使用最为频繁的控件之一,相关的知识点非常多,如果对RecyclerView的了解不够深入,那么在进行性能优化、自定义动画等工作时就会觉得力不从心。博主本人也有过多次这样的经历,因此下定决心要对RecyclerView相关的知识进行整理和学习,所以有了这一系列的博客。 本系列将会对RecyclerView的内容和进阶使用进行介绍,包括布局加载、ItemDecoration、item动画、LayoutManager、ViewHoler重用和RecyclerView封装等内容,本文是第一篇,先来介绍一下ViewHolder视图的加载。话不多少,让我们开始吧。 一、加载布局的三个方法 我们一般通过LayoutInflater将布局文件加载到某个界面或者Layout中,加载布局文件时有如下3个方式。 LayoutInflater . from ( mContext ) . inflate ( R . layout . item , null ) ; LayoutInflater . from ( mContext ) . inflate ( R . layout . item , parent , false ) ; LayoutInflater . from ( mContext ) . inflate

Butter Knife

感情迁移 提交于 2020-02-22 00:00:03
Butter Knife处理字段和方法绑定. 重要更新: 目前(2016.4.29), ButterKnife的最新版本是8.0.1. Demo项目已更新: https://github.com/mengdd/AndroidButterKnifeSample 以下原文是针对ButterKnife v6.1.0的, v8.0.1主要的不同在以下几个关键词: @InjectView -> @BindView @InjectViews -> @BindViews ButterKnife.inject(this) -> ButterKnife.bind(this) ButterKnife.reset(this) -> private Unbinder unbinder; unbinder = ButterKnife.bind(this, view); @Override public void onDestroyView() { unbinder.unbind(); super.onDestroyView(); } 配置: 用gradle配置的时候加入: compile 'com.jakewharton:butterknife:6.1.0' 注意是加在Module: app的gradle文件中. 加上之后不用运行什么命令,直接Sync一下就可以在External

RecycleView的简单应用

好久不见. 提交于 2020-02-19 07:32:18
recycleView在界面展示上类似于ListView,但不同于ListView的是它展示的每一个item类型可以不一样: RecycleAdapter类: public class RecycleAdapter extends RecyclerView.Adapter<ViewHolder> { private List<Bean> beans; public RecycleAdapter(List<Bean> beans) { super(); this.beans = beans; } //不同类型写不同的ViewHolder public class TextHolder extends RecyclerView.ViewHolder { public TextView textView; public TextHolder(View textView) { super(textView); this.textView = (TextView) textView.findViewById(R.id.mytext); } } public class ButtonHolder extends RecyclerView.ViewHolder { public Button button; public ButtonHolder(View textview) { super

Android Studio 学习笔记(四):Adapter和RecyclerView说明

醉酒当歌 提交于 2020-02-18 21:36:40
在现版本中,滚动控件有多种,而相比于ListView,GridView,RecyclerView的用途更广,因此将前两者作为Adapter适配器的引入,再对RecyclerView进行简单讲解。 MVC & Adapter 为了方便理解,这里介绍一下Android应用设计的基础,也就是MVC架构,如图。 控制器(Controller)- 可看作一个中间桥梁,响应来自View的用户交互,通过对View设定的事件逻辑修改Model,再回传实现View的数据刷新。 视图(View) - 用户看到的图形界面,由界面设计人员负责。 模型(Model) - 保存数据状态,其中由程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。 MVC架构:Model(数据)以Controller(控制器)设定的方式呈现在View(用户界面)中。 简而言之:Adapter在其中充当Controller(控制器)的角色,在其中设定每一个元素长什么样子,怎么排列各个元素的逻辑,再把包含代码逻辑的复杂数据按设定好的样式给View。其中自带的BaseAdapter用得最多。 常见用法是新建一个类继承自BaseAdapter,重写其中的方法并构造新的方法,结合ListView、GridView控件使用。 ListView和GridView的用法相似,只是功能不同

家庭记账本安卓版开发:第四天

本小妞迷上赌 提交于 2020-02-12 22:05:46
一、效果展示 账户名为张志伟,登录 查看账目 这是数据库的数据 二、总结 学习了BaseAdapter适配器来根据查询到的数据条数显示表单的行数,实现代码和布局的联动。 三、部分原码 QueryAllActivity.java package com.example.familybook; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; import android.util.Log; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ScrollView; import android.widget.TextView; import androidx.annotation.Nullable;

DataBinding

半腔热情 提交于 2020-02-12 07:55:31
一、DataBinding 1.1 在Module的build.gradle android模块中添加如下配置 代码地址 https://github.com/MichealPan9999/DataBinding-MVVM android { dataBinding { enabled = true } }   Android Studio中是依靠gradle来管理项目的,在创建一个项目时,从开始创建一直到创建完毕,整个过程是需要执行很多个gradle task的,这些task有很多是系统预先帮我们定义好的,比如build task,clean task等,DataBinding相关的task也是系统预先帮我们定义好的,但是默认情况下,DataBinding相关的task在task列表中是没有的,因为我们没有开启dataBinding,但是一旦我们通过 dataBinding{enabled = true}的方式开启DataBinding之后,DataBinding相关的task就会出现在task列表中,每当我们执行编译之类的操作时,就会执行这些dataBinding Task, 这些task的作用就是检查并生成相关dataBinding代码,比如dataBindingExportBuildInfoDebug这个task就是用来导出debug模式下的build信息的。 1.2

安卓开发学习02

橙三吉。 提交于 2020-02-11 20:48:34
经过了一上午的折腾,大致了解了如何开发一个疫情每日登录APP,首先我们需要使用数据库存储数据,Android Studio自带了SQLite作为数据库,可以通过DataBaseHelper来实现,但毕竟还是有些繁琐。今天主要学习了Google的数据库框架Room框架,Room框架由三部分组成,Entity(实体)、Dao(操作接口层)、DataBase(继承了RoomDatabase的自定义类),下面是一个小demo: 首先是Entity package com.michael.roomdemo.database; import androidx.room.ColumnInfo; import androidx.room.Entity; import androidx.room.Ignore; import androidx.room.PrimaryKey; /** * Model * */ @Entity(tableName = "student") public class Student { @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id", typeAffinity = ColumnInfo.INTEGER) public int id; @ColumnInfo(name = "name",

Android-RecyclerView多布局封装

倖福魔咒の 提交于 2020-02-11 17:16:26
对多布局的封装,开发时主要处理 数据绑定接口,视图布局返回接口,数据绑定:在holder类提供了个tag属性,初始化holder会将视图布局返回的viewtype作为标识,这样在bindData方法时switch(holder.gettag())来判断holder类型,继而拿到holder的itemview,继而findviewById,绑定数据。视图布局返回:主要是多布局的逻辑处理,什么情况下返回什么样的布局 adapter:封装adapter用于生成通用holder;同时向在onCreateViewHolder方法中有参数view和layout布局的id,这个id是后续在holder类添加的属性tag:用来标识不同的布局holder; public abstract class RecycleViewAdapterUtil extends RecyclerView.Adapter<ViewHolder>{ List list; Context context; public RecycleViewAdapterUtil(Context context, List list){ this.list = list; this.context = context; } @Override public int getItemViewType(int position) {