Spinner绑定Key value

本文介绍了一个关于Android开发中Spinner控件的使用案例,包括如何创建自定义的Model类CItem,如何将该Model类与Spinner进行绑定,并展示了如何获取Spinner中选中的项的值。

一、绑定  

1、Model

public class CItem {

       private int ID;

       private String Value = "";

       public CItem() {

           ID = 0;

           Value = "";

       }

 

       public CItem(int _ID, String _Value) {

           ID = _ID;

           Value = _Value;

       }

       @Override

       public String toString() {

           // 为什么要重写toString()呢?因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString()

           // TODO Auto-generated method stub

           return Value;

       }

       public int GetID() {

           return ID;

       }

       public String GetValue() {

           return Value;

       }

    }

 

2、绑定

  List<CItem> lst = new ArrayList<CItem>();  

      for (int i = 0; i < 10; i++) {  

          /* 

           * 首先新建一个list,赋值 

           * ID为序号 

           */  

          CItem item = new CItem(i, "value of " + i);  

          lst.add(item);  

      }  

      ArrayAdapter<CItem> myaAdapter = new ArrayAdapter<CItem>(this, android.R.layout.simple_spinner_item, lst);  

      mySpinner.setAdapter(myaAdapter);

3、  取值

mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() {  

          public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {  

              /* 

               * ids是刚刚新建的list里面的ID 

               */  

              int ids = ((CItem) mySpinner.getSelectedItem()).GetID();  

              System.out.println(ids);  

              Toast.makeText(getApplicationContext(), String.valueOf(ids), Toast.LENGTH_LONG).show();  

          }

          @Override  

          public void onNothingSelected(AdapterView<?> arg0) {  

              // TODO Auto-generated method stub  

          }  

      });  

 

 

 

 

 

转载于:https://www.cnblogs.com/virgilko/archive/2013/02/04/2892110.html

<script setup> import { ref } from 'vue'; const list = ref([]); const loading = ref(false); const finished = ref(false); const page = ref(1); const pageSize = 10; // 每页数据量 // 获取列表数据 const getList = async () => { try { loading.value = true; const res = await api.post('xxxx', { page: page.value, size: pageSize, ...data // 其他请求参数 }); // 拼接新数据 list.value = [...list.value, ...res.data.items]; // 检查是否已加载完全部数据 if (res.data.items.length < pageSize || page.value >= res.data.totalPages) { finished.value = true; } } catch (error) { console.error('加载失败:', error); } finally { loading.value = false; } }; // 滚动处理函数 const handleScroll = (event) => { const el = event.target; const offsetBottom = el.scrollHeight - el.scrollTop - el.clientHeight; // 触底条件:距离底部小于20px、不在加载中、还有数据 if (offsetBottom < 20 && !loading.value && !finished.value) { page.value += 1; // 页码增加 getList(); // 获取下一页 } }; // 初始化加载第一页 onMounted(() => { page.value = 1; list.value = []; finished.value = false; getList(); }); </script> <template> <div @scroll="handleScroll" class="scroll-container"> <!-- 渲染列表 --> <div v-for="item in list" :key="item.id">{{ item.name }}</div> <!-- 加载状态提示 --> <div v-if="loading">加载中...</div> <div v-if="finished">没有更多数据了</div> </div> </template> <style scoped> .scroll-container { height: 80vh; overflow-y: auto; } </style>点击搜索后展示新的数据并且可以下滑加载 而不是拼接到就数据后面
07-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值