android实现动态生成控件(setTag和getTag属性的用法)
来源:互联网 发布:平顶山java培训班经验 编辑:程序博客网 时间:2024/05/17 05:03
哈喽大家好!
这次给大家分享出安卓里面如何动态生成控件
这里有用到模拟数据库生成一些对象来进行取值和赋值
那么首先你得要有一个类
这里就用员工类Employee作为一个小案例来写了
所以第一步:
你要有个员工类 类中的属性根据需求来定义
然后第二步:
在MainActivity里面的代码如下:
package com.example.a06_d03;import java.util.ArrayList;import java.util.List;import android.R.integer;import android.os.Bundle;import android.app.ActionBar.LayoutParams;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.LinearLayout;import android.widget.RadioButton;import android.widget.Toast;public class MainActivity extends Activity {// 一些控件private Button bt_main_btn;private LinearLayout lt_main_ly;// 存放Employee的list集合private List<Employee> data = new ArrayList<Employee>();// 存放CheckBox的数组private CheckBox[] checkBoxs = null;// 初始化private void initData() {data.add(new Employee(1, "aa"));data.add(new Employee(2, "bb"));data.add(new Employee(3, "cc"));data.add(new Employee(4, "dd"));// 设置保存CheckBox的数组长度checkBoxs = new CheckBox[data.size()];CheckBox cb;Employee e = null;for (int i = 0; i < data.size(); i++) {// 获得Employee对象e = data.get(i);// 动态创建CheckBox组件cb = new CheckBox(MainActivity.this);LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);// 设置text属性cb.setText(e.getEname());// 给个标记后续取出使用cb.setTag(e);lt_main_ly.addView(cb);checkBoxs[i] = cb;}}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 找到idfind();// 设置初始化initData();//为按钮实现一个点击事件监听bt_main_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//这里想要取出对象的idList<Integer> lt = new ArrayList<Integer>();Employee e = null;for (CheckBox c : checkBoxs) {//上面存放好装checkBox的数组if (c.isChecked()) {//如果被选中//取出该对象e = (Employee) c.getTag();//并添加到集合当中lt.add(e.getEid());}}//利用吐丝框的形式显示出来Toast.makeText(MainActivity.this, lt.toString(), 0).show();}});}// 找到idprivate void find() {bt_main_btn = (Button) this.findViewById(R.id.bt_main_btn);lt_main_ly = (LinearLayout) this.findViewById(R.id.lt_main_ly);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
这样子就可以实现动态的生成控件了。
阅读全文
1 0
- android实现动态生成控件(setTag和getTag属性的用法)
- Android中控件的setTag/getTag用法简介
- Android的setTag 和getTAG
- android中view控件的setTag()和getTag()用法和功能介绍
- android中view控件的setTag()和getTag()用法和功能介绍
- setTag()/getTag() 的用法
- View的setTag()和getTag()的用法
- android 基础 getTag,setTag的用法
- Android setTag()和getTag()
- setTag()和getTag() android
- Android setTag和getTag()的使用
- 【转】Android setTag和getTag()的使用
- android:View的setTag和getTag使用
- android:View的setTag和getTag使用
- android:View的setTag和getTag使用
- android:View的setTag和getTag使用
- View 的setTag()/getTag() 用法
- View的setTag() 和 getTag()
- 【初学者视角】线性回归实践
- nvidia-smi GPU驱动安装后使用率很高
- 小米:朋友圈,并查集
- LeetCode
- Rxjava
- android实现动态生成控件(setTag和getTag属性的用法)
- Centos 安装 memcached 完整脚本
- 用JavaScript将Canvas内容转化成图片的方法
- docker--基础镜像和dockerfile
- Linux0.11学习记录
- Array的内置方法api
- iptables学习笔记:端口转发之“外网访问内网”
- 【nginx-rtmp】08、指令(Directives)之 直播(Live)
- CodeForces 734D:Anton and Chess(模拟?)