listview监听组件内容变化
package com.meizu.ui.gifts; import android.app.Activity;
import android.content.Context;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.TextView; import com.meizu.R;
import com.meizu.ui.sales.GiftsGivingBean; import java.util.ArrayList;
import java.util.List; /**
* Created by laoyimou on 2018/3/15.
*/ public class GiftEditAdapter extends BaseAdapter {
private GiftAuditDetailBean detailsBean = new GiftAuditDetailBean();
List<GiftAuditDetailBean> list ;
private Context context = null;
private LayoutInflater inflater = null; public GiftEditAdapter(List<GiftAuditDetailBean> list, Context context) {
this.list = list;
this.context = context;
// 布局装载器对象
inflater = LayoutInflater.from(context);
} @Override
public int getCount() {
return list.size();
} // 获取数据集中与指定索引对应的数据项
@Override
public Object getItem(int position) {
return list.get(position);
} // 获取指定行对应的ID
@Override
public long getItemId(int position) {
return position;
} // 获取每一个Item显示的内容
@Override
public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder(parent, context);
} else {
viewHolder = (ViewHolder) convertView.getTag(); // 获取,通过ViewHolder找到相应的控件
}
detailsBean = list.get(position);
viewHolder.updateView(detailsBean);
return viewHolder.getContentView();
} private class ViewHolder implements TextWatcher { private View mContentView;
private TextView giftCode;
private TextView reduce;
private EditText getSum;
private TextView add;
private TextView giftsName;
private GiftAuditDetailBean getBean; public ViewHolder(ViewGroup parent, Context context) {
mContentView = inflater.inflate(R.layout.gifts_edit_item, parent, false); mContentView.setTag(this);
giftsName = mContentView.findViewById(R.id.giftsName);
giftCode = mContentView.findViewById(R.id.giftCode);
reduce = mContentView.findViewById(R.id.reduce);
add = mContentView.findViewById(R.id.add);
getSum = mContentView.findViewById(R.id.getSum);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//由于我们已经限制了只能输入整数,所以只需要判断首个字符是不是0,或者内容为空即可
if (getSum.getText().toString() == null || "".equals(getSum.getText().toString())) {
getSum.setText("0");
}
int a = Integer.parseInt(getSum.getText().toString());
a = a + 1;
getSum.setText(a +"");
}
}); reduce.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//由于我们已经限制了只能输入整数,所以只需要判断首个字符是不是0,或者内容为空即可
if (getSum.getText().toString() == null || "".equals(getSum.getText().toString())) {
getSum.setText("0"); }
if (Integer.parseInt(getSum.getText().toString()) == 0) {
return;
} else {
//拿出内容并进行计算
int a = Integer.parseInt(getSum.getText().toString()) - 1;
//计算之后再设置回去
getSum.setText(a + "");
} }
});
// 监听EditText的输入变化,然后在对应的回调中记录输入的值
getSum.addTextChangedListener(this);
} public void updateView(GiftAuditDetailBean detailBean) {
getBean = detailBean;
giftsName.setText(getBean.getFmaterrialName());
getSum.setText("" + getBean.getFdownNum());
giftCode.setText("" + getBean.getFmaterrialCode()); } public View getContentView() {
return mContentView;
} @Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override
public void onTextChanged(CharSequence s, int start, int before, int count) { }
@Override
public void afterTextChanged(Editable s) {
// 输入内容时,记录下来,放在bean中暂存,这样就可以随时通过bean获取
getBean.setFdownNum(Integer.parseInt(s.toString()));
}
}
}
listview监听组件内容变化的更多相关文章
- JQuery如何监听DIV内容变化
这几天在做一个微博的接入,需要判断微博是否被关注,要检查微博标签的DIV是否有“已关注”的字符,但这个DIV的内容是微博JSSDK动态生 成.$("#id").html()是获取不 ...
- jQuery 监听元素内容变化的方法
我们可以用onchange事件来完成元素值发生改变触发的监听.但是 onchange 比较适用于<input>.<textarea> 以及 <select> 元素. ...
- jquery监听textarea内容变化
$('#textarea').bind('input propertychange', function(){ var length = $("#textarea").val(). ...
- 利用DOMNodeInserted监听标签内容变化
var exeFlag = 0;//控制执行业务次数标记$('#list1').bind('DOMNodeInserted', function () { if(!/img/.test($(" ...
- HTML5 oninput实时监听输入框值变化的完美方案
在网页开发中经常会碰到需要动态监听输入框值变化的情况,如果使用 onkeydown.onkeypress.onkeyup 这个几个键盘事件来监测的话,监听不了右键的复制.剪贴和粘贴这些操作,处理组合快 ...
- 【转载】实时监听输入框值变化的完美方案:oninput & onpropertychange
oninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:password 和 input:search 这几个元素通过用户界面发生的内容变化非常有 ...
- js/jquery 实时监听输入框值变化的完美方案:oninput & onpropertychange
(1) 先说jquery, 使用 jQuery 库的话,只需要同时绑定 oninput 和 onpropertychange 两个事件就可以了,示例代码: $('#username').bin ...
- 前端组件化Polymer入门教程(6)——监听属性值变化
监听属性值变化 如果需要监听属性值变化可以通过给observer赋值一个回调函数. <say-Hello></say-Hello> <dom-module id=&quo ...
- 详解vuex结合localstorage动态监听storage的变化
这篇文章主要介绍了详解vuex结合localstorage动态监听storage的变化,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 需求:不同组件间共用同一数据,当一个 ...
随机推荐
- eclipse中tomcat可以start启动,无法debug启动的解决
设置断点,进行程序调试,但是debug启动tomcat,却无法启动,并且会报超时异常. 原因可能是eclipse和tomcat启动时读取文件发生冲突 去掉所有的断点,然后重新debug启动,再设置断点 ...
- cmp指令
cmp是比较指令,cmp的功能相当于减法指令,只是不保存结果.cmp指令执行后,将对标志寄存器产生影响.其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果. cmp指令格式: cmp 操作对象 ...
- javascript 新建实例对象
在main js里面new 这样一个实例算怎么回事,如果不这么new, ToolBar里就会报错: Portal.gbl = { constants : new Portal.common.Const ...
- faiss学习
faiss 学习 github wiki 介绍 Faiss:Facebook开源的相似性搜索类库 安装 在Mac系统编译安装Faiss faiss教程跟进--Makefile 编译 faiss安装 m ...
- SpringMVC Http请求工具代码类
在SpringMVC的源代码中也提供了一个封装过的ThreadLocal,其中保存了每次请求的HttpServletRequest对象,(详细请看org.springframework.web.con ...
- Boost::bind使用详解
1.Boost::bind 在STL中,我们经常需要使用bind1st,bind2st函数绑定器和fun_ptr,mem_fun等函数适配器,这些函数绑定器和函数适配器使用起来比较麻烦,需要根据是全局 ...
- Python之ftp服务器
今天把做的ftp服务器过程总结一下,先看看要求 一.需求 1. 用户加密认证 2. 允许同时多用户登录 3. 每个用户有自己的家目录 ,且只能访问自己的家目录 4. 对用户进行磁盘配额,每个用户的可用 ...
- Spring 添加属性集中常见方法
//创建容器,索要对象, package cn.lijun.Test; import org.junit.Test;import org.springframework.context.Applica ...
- 转载-js如何设置网页横屏和竖屏切换
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 第六次spring会议
昨天所做之事: 我对软件加上了保密功能. 今天所做内容: 我对软件加上了一键解密功能. private void 一键还原ToolStripMenuItem_Click(object sender, ...