1. 程式人生 > >listView_item中的點選事件

listView_item中的點選事件

上篇寫過一個listview單行展示資料時 new Textview來實現的,主要說的是 展示出來後一些介面設定問題,

下面 listView 載入 item ,並實現item中的 RadioButton 的點選事件,實現分數的加減

程式碼來也(重要程式碼):

載入item的程式碼:

@SuppressLint("ResourceAsColor")
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ViewHolder vh = null;
		if (convertView == null) {
			convertView = inflater.inflate(R.layout.list_item, parent, false);
			vh = new ViewHolder();
			vh.tvId = (TextView) convertView.findViewById(R.id.id);
			vh.tvName = (TextView) convertView.findViewById(R.id.name);
			vh.tvCredit = (TextView) convertView.findViewById(R.id.credit);
			vh.rbjia = (RadioButton) convertView.findViewById(R.id.rb_jia);
			vh.rbjian = (RadioButton) convertView.findViewById(R.id.rb_jian);
			
			convertView.setTag(vh);

		} else {
			vh = (ViewHolder) convertView.getTag();
		}
		data.get(position);
		vh.tvId.setText((String) data.get(position).get("id"));
		vh.tvName.setText((String) data.get(position).get("name"));
		vh.tvCredit.setText((String) data.get(position).get("credit"));
		vh.rbjia.setOnCheckedChangeListener(new MyOnClick(data.get(position), true, position));//點選監聽
		vh.rbjian.setOnCheckedChangeListener(new MyOnClick(data.get(position), false, position));//點選監聽

		
		list[position] = false;
		

		return convertView;
	}
class ViewHolder {
private TextView tvId, tvName, tvCredit;
private RadioButton rbjia, rbjian;
}


RadioButton 點選開啟:

	class MyOnClick implements OnCheckedChangeListener {
		
		private Map<String, Object> map;
		private Boolean isDui;
		private int pos;

		public MyOnClick(Map<String, Object> map, Boolean isDui, int pos) {
			this.map = map;
			this.isDui = isDui;
			this.pos = pos;
		}

		@Override
		public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
			
				if (isChecked) {
					if (isDui) {
						num = num + Integer.parseInt((String) map.get("credit"));
						list[pos] = true;
					} else {
						if (list[pos]) {
							num = num - Integer.parseInt((String) map.get("credit"));
							list[pos] = false;
						}
					}

			}
			
		}

	}
就是這些,有需要的可以借鑑一下,大神勿噴,借過借過。

相關推薦

JS中對於for迴圈中點事件的理解(通俗版)

在學習JS時遇到了一個問題,就是如果有多個按鈕時,我們可以通過document.getElementByTagName(“button”)的方式來獲取事件陣列,在獲取後我們需要監聽每一個按鈕是否被點選。最簡單的方式就是分開寫,一個按鈕對應一個點選事件函式,這樣雖然通俗易懂,但是這樣的程式碼量是十分大

layer中點事件不起作用??

不起作用: $('#test').on('click', function() { layer.msg('響應點選事件'); }); 起作用了: $(document).on('click', '#test', function() { layer.msg('響應點選

Android中點事件回撥介面踩坑心得

有時候寫程式碼的時候有這樣的功能要求,如在ListView或recyclerView中的Item中的控制元件(如Button,TextView)上添加回調介面事件。其實難點就在添加回調介面事件上,怎麼寫介面,介面回撥在哪裡,這才是關鍵。下面是個例子: 介面的寫法:一下是兩介

(新手篇)關於小程式中點事件重複觸發的問題

今天碰到了點選事件重複觸發的問題 例如:我們在實現切入切出層的時候,我們點選一個按鈕想觸發我們需要的內容顯示出來,然後再把內容隱藏 有時候可能會遇到點選後重復觸發 看圖: 點了一次,然後我們想點選確定把視窗去掉 卻發現它的父元素也被觸發了 這是點選第一次的

iOS Safari 中點事件失效的解決辦法

問題描述 當使用委託給一個元素新增click事件時,如果事件是委託到 document 或 body 上,並且委託的元素是預設不可點選的(如 div, span 等),此時 click 事件會失效。 <!DOCTYPE html> <html>

安卓 ListView中點事件獲取Item中的物件

註明: ListView的物件 : mListView 繼承於BaseAdapter自定義的adapter ResultItem:每個Item資料的類private ListView mListVie

Qt事件處理機制整個流程--以滑鼠在一個視窗中點為例

轉載自:http://mobile.51cto.com/symbian-272812.htm,在此謝謝原作者的分享! ------------------------第一部分----------------------   本篇來介紹Qt 事件處理機制 。深入瞭解事件處理系統對

listView_item中的點事件

上篇寫過一個listview單行展示資料時 new Textview來實現的,主要說的是 展示出來後一些介面設定問題, 下面 listView 載入 item ,並實現item中的 RadioButton 的點選事件,實現分數的加減。 程式碼來也(重要程式碼): 載入

qt工程中點按鈕事件等效為按鍵盤的enter鍵事件

一直在網上查詢qt工程中,比如點選“確定”按鈕,然後這個按鈕會關聯到一個槽函式。等效成,直接手動的按鍵盤的ENTER鍵,就可以了。 方法一:  QShortcut*key=newQShortcut(QKeySequence(Qt::Key_Return),this);//

微信小程式中點View中任何位置都可以觸發相應事件的解決辦法

直接在這個View 裡新增事件函式,比如: <block wx:for="{{celldata}}" wx:for-item="celldata"> <view cl

WINFORM 程式中點 窗體關閉按鈕事件彈提醒框

private void Form1_FormClosing(object sender,FormClosingEventArgs e){ if (DiaLogResult.OK == messageBox.Show("是否刪除","Warning",MessageBut

禁用瀏覽器鼠標右擊事件、全事件

禁用 右擊事件 ava doc ondrag ext UNC function star 1、鼠標右鍵觸發事件 function click() { if(event.button==2) { alert(‘hello。。。

Unity 多Canvas 點事件的響應

問題 :Canvas在World Space模式下無法接受點選事件 解決辦法: 1.Canvas的EventCamera如果為空,則設定對應Canvas的Camera的Tag為MainCamera 2.指定Canvas的EventCamera為對應的Camera   其

Unity UGUI按鈕動態新增點事件

使用程式碼的方式給按鈕新增點選事件需要引入兩個名稱空間: using UnityEngine.UI; using UnityEngine.Events; 先建立一個介面,並且在介面裡放置一個按鈕: 建立一個Test指令碼,程式碼如下: using

安卓自定義:Toast 以及Toast的出場動畫 以及Toast上新增圖片 以及點事件

安卓自定義Toast: 1.自定義一個類:CustomToast 繼承自:Toast 2.在CustomToast類中 新增一個靜態 mCustomToast 物件 private static CustomToast mCustomToast; 3.在CustomToast類中 新

openDialog()中確定按鈕點事件

openDialog()中確定按鈕點選事件 本文是我在開發過程中,遇到的也是我不知道的知識,所以此篇僅當做自己以後借鑑用的,如果能對看官你也有用,榮幸之至。 form.ajaxSubmit 首先,在jeeplus中xxxform.jsp檔案中,一般openDialog()

Android listview子控制元件的的點事件(轉)

1.先看圖,是否是你想要的   2.佈局檔案<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" androi

better-scroll 與fastclick點事件相沖突

better-scroll 點選事件與fastclick點選事件相沖突導致圖片點選無反應 import BScroll from 'better-scroll'   export default {     props: {   

事件分發機制 關鍵原始碼筆記

請注意,涉及到的原始碼 SDK 版本為 27,不同版本可能存在偏差,一切以具體的原始碼為準。 宣告: 文字部分主要參考自 《Android 開發藝術探索》,原始碼部分的解讀主要摘抄自 Android 觸控事件機制(三) View中觸控事件詳解 、 Android 觸控事件機制(四)

QT中Qtableview視圖表格中點表頭進行排序

因為要顯示的資料有多列,很自然的會想到要能夠對顯示的資料進行排序。如果直接操作model裡的資料,不太方便,因為最好是能由使用者自己選擇按哪一列進行排序。如果通過訊號槽機制,也不是很方便。然後找到QTableView下有一個setSortingEnabled()的函式。在將該函式設定為True後,在