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

这篇博客详细介绍了在Android开发中如何动态创建并添加EditText控件到RelativeLayout中,包括定义布局、初始化EditText、设置LayoutParams、定位EditText以及添加到布局的步骤。同时提供了源代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本步骤

1、定义一个RelativeLayout对象

privateRelativeLayoutrlActivityMain;

2、定义一个EditText对象并将其初始化

privateEditTextetIntroductImage;

etIntroductImage=newEditText(MainActivity.this);etIntroductImage.setText("图片说明");

3、定义一个RelativeLayout.LayoutParams对象并将其初始化

privateRelativeLayout.LayoutParamstempLayoutParams;

tempLayoutParams=newRelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,90);//ViewGroup.LayoutParams.WRAP_CONTENT是要添加控件的width属性的值,90是要添加控件的height属性的值

4、设置EditText控件的位置

//imgFengJing的定义为private ImageView imgFengJing;//将EditText放在imgFengJing上方水平居中的位置tempLayoutParams.addRule(RelativeLayout.ABOVE,imgFengJing.getId());tempLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL,imgFengJing.getId());

5、将EditText添加到布局中

rlActivityMain.addView(etIntroductImage,tempLayoutParams);

二、效果图

6121fa3071345dfc15af897563e8a2a9.png

三、源代码

MainActivity.java

packagecom.weipeng.adroid.myrelativelayout;importandroid.os.Bundle;importandroid.app.Activity;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.ViewGroup;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.ImageView;importandroid.widget.RelativeLayout;importandroid.widget.RelativeLayout.LayoutParams;importandroid.widget.TextView;publicclassMainActivityextendsActivityimplementsOnClickListener{privateButtonbtnUp;privateButtonbtnDown;privateButtonbtnLeft;privateButtonbtnRight;int[]Buttons;privateImageViewimgFengJing;privateEditTextetIntroductImage;privateRelativeLayoutrlActivityMain;privateRelativeLayout.LayoutParamstempLayoutParams;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);System.out.println("已执行:setContentView");btnUp=(Button)findViewById(R.id.btnUp);btnDown=(Button)findViewById(R.id.btnDown);btnLeft=(Button)findViewById(R.id.btnLeft);btnRight=(Button)findViewById(R.id.btnRight);System.out.println("已执行:(Button) findViewById");rlActivityMain=(RelativeLayout)findViewById(R.id.rlActivityMain);imgFengJing=(ImageView)findViewById(R.id.imgFengJing);System.out.println("已执行:(RelativeLayout) findViewById");System.out.println("已执行:(ImageView) findViewById");btnUp.setOnClickListener(this);btnDown.setOnClickListener(this);btnLeft.setOnClickListener(this);btnRight.setOnClickListener(this);System.out.println("已执行:setOnClickListener");}@OverridepublicbooleanonCreateOptionsMenu(Menumenu){getMenuInflater().inflate(R.menu.main,menu);returntrue;}@OverridepublicvoidonClick(Viewv){etIntroductImage=newEditText(MainActivity.this);etIntroductImage.setText("图片说明");tempLayoutParams=newRelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,90);switch(v.getId()){caseR.id.btnUp:tempLayoutParams.addRule(RelativeLayout.ABOVE,imgFengJing.getId());tempLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL,imgFengJing.getId());rlActivityMain.addView(etIntroductImage,tempLayoutParams);break;caseR.id.btnDown:tempLayoutParams.addRule(RelativeLayout.BELOW,imgFengJing.getId());tempLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL,imgFengJing.getId());rlActivityMain.addView(etIntroductImage,tempLayoutParams);break;caseR.id.btnLeft:tempLayoutParams.addRule(RelativeLayout.LEFT_OF,imgFengJing.getId());tempLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL,imgFengJing.getId());rlActivityMain.addView(etIntroductImage,tempLayoutParams);break;caseR.id.btnRight:tempLayoutParams.addRule(RelativeLayout.RIGHT_OF,imgFengJing.getId());tempLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL,imgFengJing.getId());rlActivityMain.addView(etIntroductImage,tempLayoutParams);break;}System.out.println("已执行:onClick");}}

activity_main_xml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值