android开发中动态添加EditText控件的方法

一、基本步骤

1、定义一个RelativeLayout对象


  
  
  1. private RelativeLayout rlActivityMain;

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


  
  
  1. private EditText etIntroductImage;

  
  
  1. etIntroductImage=new EditText(MainActivity.this);
  2. etIntroductImage.setText("图片说明");

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


  
  
  1. private RelativeLayout.LayoutParams tempLayoutParams;

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

4、设置EditText控件的位置


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

5、将EditText添加到布局中


  
  
  1. rlActivityMain.addView(etIntroductImage, tempLayoutParams);

二、效果图

三、源代码

MainActivity.java


  
  
  1. package com.weipeng.adroid.myrelativelayout;
  2.  
  3. import android.os.Bundle;
  4. import android.app.Activity;
  5. import android.view.Menu;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.view.ViewGroup;
  9. import android.widget.Button;
  10. import android.widget.EditText;
  11. import android.widget.ImageView;
  12. import android.widget.RelativeLayout;
  13. import android.widget.RelativeLayout.LayoutParams;
  14. import android.widget.TextView;
  15.  
  16. public class MainActivity extends Activity implements OnClickListener {
  17.  
  18. private Button btnUp;
  19. private Button btnDown;
  20. private Button btnLeft;
  21. private Button btnRight;
  22. int[] Buttons;
  23. private ImageView imgFengJing;
  24. private EditText etIntroductImage;
  25. private RelativeLayout rlActivityMain;
  26. private RelativeLayout.LayoutParams tempLayoutParams;
  27. @Override
  28. protected void onCreate(Bundle savedInstanceState) {
  29. super.onCreate(savedInstanceState);
  30. setContentView(R.layout.activity_main);
  31. System.out.println("已执行:setContentView");
  32. btnUp=(Button) findViewById(R.id.btnUp);
  33. btnDown=(Button) findViewById(R.id.btnDown);
  34. btnLeft=(Button) findViewById(R.id.btnLeft);
  35. btnRight=(Button) findViewById(R.id.btnRight);
  36. System.out.println("已执行:(Button) findViewById");
  37. rlActivityMain=(RelativeLayout) findViewById(R.id.rlActivityMain);
  38. imgFengJing=(ImageView) findViewById(R.id.imgFengJing);
  39. System.out.println("已执行:(RelativeLayout) findViewById");
  40. System.out.println("已执行:(ImageView) findViewById");
  41. btnUp.setOnClickListener(this);
  42. btnDown.setOnClickListener(this);
  43. btnLeft.setOnClickListener(this);
  44. btnRight.setOnClickListener(this);
  45. System.out.println("已执行:setOnClickListener");
  46. }
  47.  
  48. @Override
  49. public boolean onCreateOptionsMenu(Menu menu) {
  50. getMenuInflater().inflate(R.menu.main, menu);
  51. return true;
  52. }
  53.  
  54. @Override
  55. public void onClick(View v) {
  56. etIntroductImage=new EditText(MainActivity.this);
  57. etIntroductImage.setText("图片说明");
  58. tempLayoutParams=new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 90);
  59. switch (v.getId()) {
  60. case R.id.btnUp:
  61. tempLayoutParams.addRule(RelativeLayout.ABOVE, imgFengJing.getId());
  62. tempLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL,imgFengJing.getId());
  63. rlActivityMain.addView(etIntroductImage, tempLayoutParams);
  64. break;
  65. case R.id.btnDown:
  66. tempLayoutParams.addRule(RelativeLayout.BELOW, imgFengJing.getId());
  67. tempLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL, imgFengJing.getId());
  68. rlActivityMain.addView(etIntroductImage, tempLayoutParams);
  69. break;
  70. case R.id.btnLeft:
  71. tempLayoutParams.addRule(RelativeLayout.LEFT_OF,imgFengJing.getId());
  72. tempLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL, imgFengJing.getId());
  73. rlActivityMain.addView(etIntroductImage, tempLayoutParams);
  74. break;
  75. case R.id.btnRight:
  76. tempLayoutParams.addRule(RelativeLayout.RIGHT_OF, imgFengJing.getId());
  77. tempLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL, imgFengJing.getId());
  78. rlActivityMain.addView(etIntroductImage, tempLayoutParams);
  79. break;
  80. }
  81. System.out.println("已执行:onClick");
  82. }
  83.  
  84. }

activity_main_xml


  
  
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:id="@+id/rlActivityMain"
  4.     android:layout_width="match_parent"
  5.     android:layout_height="match_parent"
  6.     android:background="#ffa500" >
  7.  
  8.     <Button
  9.         android:id="@+id/btnUp"
  10.         android:layout_width="wrap_content"
  11.         android:layout_height="wrap_content"
  12.         android:layout_alignParentTop="true"
  13.         android:layout_centerHorizontal="true"
  14.         android:text="@string/上" />
  15.  
  16.     <Button
  17.         android:id="@+id/btnDown"
  18.         android:layout_width="wrap_content"
  19.         android:layout_height="wrap_content"
  20.         android:layout_alignParentBottom="true"
  21.         android:layout_centerHorizontal="true"
  22.         android:text="@string/下" />
  23.  
  24.     <Button
  25.         android:id="@+id/btnLeft"
  26.         android:layout_width="wrap_content"
  27.         android:layout_height="wrap_content"
  28.         android:layout_alignParentLeft="true"
  29.         android:layout_centerVertical="true"
  30.         android:text="@string/左" />
  31.  
  32.     <Button
  33.         android:id="@+id/btnRight"
  34.         android:layout_width="wrap_content"
  35.         android:layout_height="wrap_content"
  36.         android:layout_alignParentRight="true"
  37.         android:layout_centerVertical="true"
  38.         android:text="@string/右" />
  39.  
  40.     <ImageView
  41.         android:id="@+id/imgFengJing"
  42.         android:layout_width="33dp"
  43.         android:layout_height="33dp"
  44.         android:layout_centerInParent="true"
  45.         android:src="@drawable/fengjing" />
  46.  
  47. </RelativeLayout>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: EditTextAndroid的一个UI组件,用于接收和显示用户输入的文本信息。它提供了一系列方法用于操作和获取EditText的属性,其一些常用的方法如下: 1. setText(CharSequence text):设置EditText显示的文本内容。 2. getText():获取EditText的文本内容。 3. setHint(CharSequence hint):设置EditText未输入内容时的提示信息。 4. setSelection(int index):设置EditText光标所在的位置。 5. addTextChangedListener(TextWatcher watcher):为EditText添加文本变化的监听器。 6. setOnEditorActionListener(TextView.OnEditorActionListener listener):为EditText设置编辑器操作的监听器。 7. setEnabled(boolean enabled):设置EditText是否可用。 以上仅是一部分常用的方法EditText还有很多其他的方法可以使用。 ### 回答2: EditTextAndroid开发常用的一个控件,主要用于接收用户的输入。 1. getText():获取EditText的文本内容 方法说明:返回一个Editable类型的对象,表示EditText的文本内容 2. setText():设置EditText的文本内容 方法说明:接收一个CharSequence类型的参数,并将其作为EditText的文本内容进行显示 3. setSelection():设置EditText文本的选区域 方法说明:接收两个参数,分别表示选文本的起始位置和结束位置,将这段文本在EditText变为选状态 4. append():在EditText的内容后追加文本 方法说明:接收一个CharSequence类型的参数,并将其追加到EditText原有的文本内容后面 5. addTextChangedListener():为EditText添加文本变化监听器 方法说明:接收一个TextWatcher类型的参数,用于监听EditText文本内容的变化 6. setHint():设置EditText的提示文本 方法说明:接收一个CharSequence类型的参数,用于设置EditText的提示文本,在用户输入之前显示在控件上 7. setInputType():设置EditText的输入类型 方法说明:接收一个InputType类型的参数,用于设置EditText接收用户输入的类型,如数字、电话、邮箱等 8. requestFocus():获取EditText焦点 方法说明:设置EditText为焦点状态,允许用户输入的控件会自动获取焦点 9. setEnabled():设置EditText是否可编辑 方法说明:接收一个boolean类型的参数,用于设置EditText是否可以编辑。当设置为false时,EditText将无法接收用户的输入。 以上是EditText的一些常用方法和简单的文说明,通过这些方法,可以实现对EditText的各种操作和设置。 ### 回答3: EditTextAndroid开发常用的一个控件,用于接收和显示用户输入的文本。下面是EditText的常用方法及其文说明: 1. setText(CharSequence text):设置EditText显示的文本内容。 2. getText():获取EditText当前显示的文本内容。 3. setHint(CharSequence hint):设置EditText的提示文本,当EditText没有输入时显示。 4. setEnabled(boolean enabled):设置EditText是否可用。 5. setFocusable(boolean focusable):设置EditText是否可以获得焦点。 6. setFocusableInTouchMode(boolean focusableInTouchMode):设置EditText是否可以在触摸模式下获得焦点。 7. addTextChangedListener(TextWatcher watcher):添加文本监听器,用于监听EditText文本的变化。 8. setSelection(int index):设置EditText文本的选范围。 9. setCursorVisible(boolean visible):设置是否显示光标。 10. setInputType(int type):设置EditText的输入类型,例如数字、电话号码、密码等。 11. setTransformationMethod(TransformationMethod method):设置EditText文本的转换方式,例如隐藏密码。 12. setOnEditorActionListener(TextView.OnEditorActionListener listener):设置监听EditText软键盘的动作事件。 13. setFilters(InputFilter[] filters):设置输入过滤器,限制输入字符的类型和长度。 14. setError(CharSequence error):设置错误提示信息,当用户输入不符合要求时显示错误提示。 15. setOnFocusChangeListener(View.OnFocusChangeListener listener):设置焦点改变监听器,用于监听EditText的焦点变化。 16. requestFocus():请求EditText获取焦点。 这些方法可以帮助我们控制和自定义EditText的行为和外观,使其能够更好地满足我们的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GraysonWP

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

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

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

打赏作者

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

抵扣说明:

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

余额充值