Android开发-Android中如何动态添加控件

在Android中使用LinearLayout动态添加UI控件 然后,在Java代码中获取LinearLayout容器的引用,并使用addView方法动态添加UI控件。上述代码中,我们首先在MainActivity类中定义了一个LinearLayout对象linearLayoutContainer,用于引用XML布局文件中的LinearLayout容器。首先,我们需要在XML布局文件中声明一个LinearLayout容器,作为我们动态添加控件的容器。接下来,我们需要在Java代码中获取LinearLayout容器的引用,并在其中动态添加UI控件。 阅读详情

 1 简介

Android应用开发中,我们可以使用xml布局文件来定义控件。事实上,我们也可以在java代码中进行控件的添加。

2 举例:

在LinearLayout中动态添加2个垂直排列的Button:

    OnClickListener listen1;  
    
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        //setContentView(R.layout.main); //布局文件xml       
        final LinearLayout layout2=new LinearLayout(this);  
        layout2.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout2); 
 
        Button btn1=new Button(this);  
        Button btn2=new Button(this);  
        btn1.setText("Button1");  
        btn2.setText("Button2"); 
 
        layout2.addView(btn1);  
        layout2.addView(btn2);  
          
        setContentView(layout2);

        //设置点击事件
        listen1 = new OnClickListener() {  
            public void onClick(View v) {  
                setTitle("点击button1 ");  
                Button btn3=new Button(v.getContext());  
                layout2.addView(btn3);  //再添加一个Button
                btn3.setText("Button3");  
            }  
        };  
        btn1.setOnClickListener(listen1);   
    }

 说明:

(1)先创建一个顶层的Layout,并且指定排列方式为垂直排列:

        final LinearLayout layout2=new LinearLayout(this);  
        layout2.setOrientation(LinearLayout.VERTICAL);  

(2)再创建需要添加的Button:

        Button btn1=new Button(this);  
        Button btn2=new Button(this);  

(3)添加控件到Layout:

        layout2.addView(btn1);  
        layout2.addView(btn2);  
         

 (4)给控件添加点击事件:

        //设置点击事件
        listen1 = new OnClickListener() {  
            public void onClick(View v) {  
                setTitle("点击button1 ");  
                Button btn3=new Button(v.getContext());  
                layout2.addView(btn3);  //再添加一个Button
                btn3.setText("Button3");  
            }  
        };  
        btn1.setOnClickListener(listen1);

说明:

需要注意的一点是 Button btn3=new Button(v.getContext);参数v.getContext为当前view的context,为什么例子1中用this作为context呢,呵呵,这是因为this即当前的activity,而activity又是context的子类,所以this就可以直接作为activity了。

3 附:

Context的派生类:

java.lang.Object

      -->android.content.Context

            -->ContextWrapper , MockContext

                    --> AbstractInputMethodService , Activity , ActivityGroup , AliasActivity , Application , ContextThemeWrapper ,ExpandableListActivity , InputMethodService , IntentService , IsolatedContext , LauncherActivity , ListActivity ,MockApplication , MutableContextWrapper , PreferenceActivity , RenamingDelegatingContext , Service ,TabActivity

Android开发笔记: Android动态添加、删除控件 1 创建布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/dynamic_layout 阅读详情

相关推荐

Android开发实战:动态添加与删除控件及布局的完整实现

在移动应用开发中,静态界面已难以满足日益复杂的用户交互需求。Android平台提供了强大的UI动态管理能力,允许开发者在程序运行时根据业务逻辑或用户行为动态添加、删除控件或布局,从而实现更灵活、响应更快的界面体验。本章将系统阐述动态UI的核心概念及其在现代Android开发中的重要性,介绍View与ViewGroup的基本结构关系,解析动态操作UI的本质——即对视图树(View Tree)的实时修改。

weixin_42128315的博客 459

Android 在程序中动态添加 View 布局或控件

有时我们需要在程序中动态添加布局或控件等,下面用程序来展示一下相应的方法:

安卓动态添加控件(子项)教程

在开发安卓应用时,动态地向用户界面(UI)添加控件是一个常见的需求。随着用户交互的深入,应用程序往往需要在运行时根据特定的逻辑或事件响应,向屏幕中添加新的元素,如按钮、文本框等。这不仅能够提供更加动态和丰富的用户体验,还可以优化应用的性能和资源使用。在这一章,我们将简要介绍动态添加子项的基本概念、目的以及它在实际开发中的重要性,为接下来探讨具体实现步骤和最佳实践奠定基础。通过理解这一概念,开发者可以更好地掌握安卓应用的UI设计和交互逻辑。

weixin_29363791的博客 755

简析Android 动态添加控件的几种方式

在某些情况下我们会有让用户自行添加控件的需求,本文主要通过addView来实现 1.addView 首先让我们来看一下源码 void android.view.ViewGroup.addView(View child); void android.view.ViewGroup.addView(View child, LayoutParams params); void android.vi...

qq_39330066的博客 5453

Android 动态生成多个控件并实现点击

Android 动态生成多个控件并实现点击

Android动态添加设置布局与控件的方法

本文实例讲述了Android动态添加设置布局与控件的方法。分享给大家供大家参考,具体如下: 有时候我们会在代码端,动态的设置,添加布局和控件。下面我们就看来看一下如何处理,直接上代码,代码里面的注解很清楚了。 布局文件:fragment_hot.xml 说明:这个部局,我用的是scrollView做为基础布局,主要是为了实现一个滚动。这里不多说,这个你可以使用任何布局都可以,这里的id我是提前定义的。 这里面的现在有的布局是我为了看到我在代码端,动态添加的代码,是否可以追加到现有布局的后面而加上,这里大家可以自己设置 <?xml version=1.0 encoding=utf-8?

android动态添加控件教程,使用C# + Xamarin开发Android应用-- 动态添加控件

使用C# + Xamarin开发Android应用-- 动态添加控件public class MyOrders : Activity{private DynamicControl _dynaControl;public MyOrders(){_dynaControl = new DynamicControl();}protected override void OnCreate(Bundle bu...

weixin_39875754的博客 669

NetApp 7-mode初始化详解(原AGGR重建)及注意事项

没想到有生之年还能再写个7-mode的文章,上次接触可能已将近十年,本次恰巧碰到这个机会,边学习边整理,整整一天时间,碰到了不少坑,作为记录。

RaySun的技术Blog 2751

android 动态添加删除控件,Android应用开发Android_Develop:如何在代码中实时添加、移除布局、控件...

本文将带你了解Android应用开发Android_Develop:如何在代码中实时添加、移除布局、控件,希望本文对大家学Android有所帮助。在代码中实时添加、移除布局、控件1、添加要在代码中动态添加布局和控件,可以使用ViewGroup类自带的addView方法,如下:framLayout.addView(animationFrameLayout);方法接受的参数类型为View,说明可以添加...

weixin_32000561的博客 1144

【AI智能体】图像处理-生成营销 Banner 图

生成营销 Banner 图是一款用于制作营销图片的智能体,它可以根据指定的营销活动内容,快速生成活动 Banner 图片,降低活动运营成本、提高制图效率。

AI创变工坊,和1000万新个体创业者一起成长!愿大家都能跟上时代的洪流,不被社会淘汰,愿大家的生活工作收入都能具备竞争力! 1175

操作系统课程项目 OS project —— Pintos from Project 1 to Project 3

Pintos Project 陪伴我们操作系统课程大半个学期了…… 虽然做了这么长时间,个人能力有限,pintos代码,看过的可能也就看懂了一半吧,更不用说没看过的了…… 但是也找到了一些有价值的资料,整理一下,供后辈们参考…… 关于环境的问题,最好是用ubuntu 16.04 windows用户不要折腾装双系统了,特别是win10,动不动更新一下,说不定双系统就出问题了,linux...

Deserted Land 8553

android 动态创建edittext,android开发中动态添加EditText控件的方法

一、基本步骤1、定义一个RelativeLayout对象privateRelativeLayoutrlActivityMain;2、定义一个EditText对象并将其初始化privateEditTextetIntroductImage;etIntroductImage=newEditText(MainActivity.this);etIntroductImage.setText("图片说明");3...

weixin_29224529的博客 1308

<蓝桥杯软件赛>零基础备赛20周--第16周--GCD和LCM

gcd,lcm

罗勇军的博客 7603

android开发:动态添加控件使用ConstraintSet设置布局不生效问题

android开发:动态添加控件使用ConstraintSet设置布局不生效问题

ComputerInBook的专栏 2392

【实战】——零代码玩转Supervisely人像分割:从标注到模型训练的数据流水线搭建

本文详细介绍了如何零代码使用Supervisely平台搭建人像分割数据流水线,从智能标注到数据集格式转换,再到模型训练与优化。Supervisely的智能标注工具和协作功能大幅提升了人像分割项目的效率,特别适合视频会议背景虚化、虚拟试衣等应用场景。

weixin_30694389的博客 414

A2B V1.0协议学习笔记(A2B System Specification V1.0)

A2B全称是 Automotive Audio Bus 汽车音频总线,主要是解决传统音频总线线多、线重、成本贵等问题。本文是以A2B V1.0规范为准,现在ADI又推出了A2B V2.0,物理层不兼容,采用了QPSK编码方式,后续有时间再更新。A2B总线的优点:支持1主多从的架构(最多10个子节点)支持50Mbps(具体是49.152 Mbps)的高带宽传输以及

qflook的博客 4426

android studio开发在java代码层面动态添加控件

我们要实现的是在一个LinearLayout中添加一个LinearLayout,并在新的LinearLayout下添加一个TextView. 第一步:选择指定父级控件 LinearLayout classLL = (LinearLayout) findViewById(R.id.MyClasses); (这里classLL是指定的父级控件,也就是我们要在这个控件下加入新控件) 第二步:设计待添加控件的参数 这里new_class是新的LinearLayout,manage是要放在new_class中的新的

clearloveTIM的博客 2173

把数据库算力拉满的 ABAP CDS Table Function:从语法、权限到可运行样例的全景解析

文章摘要: 本文针对ABAP开发者探讨了CDS Table Function的应用场景与实现细节。当CDS View无法处理复杂计算(如窗口函数、递归等)时,可通过Table Function将逻辑下推到HANA数据库执行。关键点包括:1)CDS实体声明与AMDP实现的协作关系;2)多租户环境下的Client处理机制(@ClientHandling.type注解);3)激活与传输的阶段性特点可能导致的"暂不可用"问题;4)基于SFLIGHT的完整示例,展示如何定义Client依赖函数、实

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 300

android动态控件添加编辑框,Android开发实践:玩转EditText控件

Android的EditText控件是一个非常常用的控件,用得最多的地方就是做登录、注册页面了,它能为用户提供一个直观便捷的输入框。本文简单总结下EditText控件中比较常用的一些设置,并为每一种设置提供两种方式的实现,一种是在布局文件中实现,另一种是在程序中通过代码动态的设置。1. 如何添加一个方框在Android的Hololight主题下,EditText控件默认是只有一条底部的蓝色横线的,...

weixin_35110501的博客 582

白话FOC控制中各环节的参数的意义与如何设置参数

FOC参数整定是控制系统的关键环节,如同驯马需要调节"智能马鞍"。核心参数分为三类:电流环参数(P/I/D)决定响应速度和稳定性,速度环参数需慢于电流环5-10倍带宽,系统参数(极对数、电阻等)是电机固有属性必须准确设置。调参心法:由内而外先调电流环,遵循先P后I慎用D原则,内环带宽必须大于外环。利用自动辨识工具,通过听觉(滋滋声表示P过大)和波形观察来微调,最终实现精准控制。

汽车软件开发 356

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

android开发之动态给HorizontalScrollView添加被包含控件

懒惰,只是为了更好的懒惰!

ZaneLove's blog 2728

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android 动态添加framelayout,Android开发FrameLayout动态添加控件位置问题

首先FrameLayout的子控件默认都是从左上角显示的,还有最后添加的在最前面显示。一般是对FrameLayout.LayoutParamsparams进行操作,刚开始一直params.rightMargin来定位置,访了第一条准则,那就换种思路来做,比如params.leftMargin第二个重要的点:params需要每次生成一个新的,否则它以之后改变的为准的示例代码:for(int i = ...

weixin_42423817的博客 1747

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android开发之动态添加控件

动态添加TextView控件: 一:创建一个Android project项目 activity_main.xml文件: 1、用两个LinearLayout布局分别包裹一对TextView,EditText控件,将orientation设置为水平方向,EditText的hint属性可以实现水印效果,两个EditText用来控制显示(TextView控件数量...

weixin_30780221的博客 266

(Android开发)在已有布局中动态添加控件

//手动添加imageview RelativeLayout mainLayout = (RelativeLayout)findViewById(R.id.relaGameZhaiGuoZi); imgApple2 = new ImageView(this); imgApple2.setImageResource(R.drawable.app);

安迪·潘 的专栏 4万+

Android开发FrameLayout动态添加控件位置问题

首先FrameLayout的子控件默认都是从左上角显示的,还有最后添加的在最前面显示。 FrameLayout.LayoutParams params         一般是对params进行操作,刚开始一直params.rightMargin来定位置,访了第一条准则,那就换种思路来做,比如params.leftMargin         第二个重要的点:params需要每次生成一个新的,

聪哥的专栏 1万+

Android开发第二天:动态添加控件

在实际开发中有时会用到在Java代码中动态添加控件,其实用到的场合不多,灵活性比较差. public class Main2Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(saved

android4all的博客 372
上一篇: Android开发-开源框架Glide的使用,图片的加载
下一篇: Android开发-如何判断当前页面是否是桌面(Home)
liranke
博客等级 码龄20年 4939粉丝 594原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liranke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值