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的变化,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 需求:不同组件间共用同一数据,当一个 ...
随机推荐
- SpringMVC不能引入静态资源
SpringMVC不能引入静态资源 问题:部署项目后程序加载或用浏览器访问时出现类似的警告, 2011-01-19 10:52:51,646 WARN [org.springframework.web ...
- ES之五:ElasticSearch聚合
前言 说完了ES的索引与检索,接着再介绍一个ES高级功能API – 聚合(Aggregations),聚合功能为ES注入了统计分析的血统,使用户在面对大数据提取统计指标时变得游刃有余.同样的工作,你在 ...
- Python:每日一题002
题目: 企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万 ...
- [转]ArcGIS for Silverlight:关于尝试连接到REST端点时发生安全异常的解决方案
Silverlight跨域策略: 要从远程服务器访问数据,远程服务器需要在 web 服务器的根目录下放置一个 clientaccesspolicy.xml 文件(例如 c:\inetpub\wwwro ...
- <fieldset>标签
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...
- 2、JavaScript 基础二 (从零学习JavaScript)
11.强制转换 强制转换主要指使用Number.String和Boolean三个构造函数,手动将各种类型的值,转换成数字.字符串或者布尔值. 1>Number强制转换 参数为原始类型值的转换规 ...
- 23.HashMap
HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在.在HashMap中,key-value总是会当做一个整体来处理,系统会根据 ...
- verilog HDL -模块代码基本结构
1--verilog HDL 语言的预编译指令作用:指示在编译verliog HDL源代码前,需要执行哪些操作. 2--模块内容是嵌在module 和endmodule两个语句之间.每个模块实现特定的 ...
- 利用fork创建子进程
创建如图的进程: #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<wait. ...
- MySQL--事务隔离级别RR和RC的异同
在MySQL中,事务隔离级别RC(read commit)和RR(repeatable read)两种事务隔离级别基于多版本并发控制MVCC(multi-version concurrency con ...