Android--动态添加控件

[html]

[html]

package com.mrzhu.edittest;

import android.app.Activity;

import android.os.Bundle;

import android.view.ViewGroup;

import android.widget.RelativeLayout;

public class EditTestActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//自定义的带提示文本的EditText组件

EditTextTest ed = new EditTextTest(this);

//设置从左边140px处开始输入文本

ed.setPadding(140, 0, 0, 0);

//装载一个布局文件,向这个布局中动态添加一个EditText

RelativeLayout relativeLayout = (RelativeLayout) getLayoutInflater().inflate(R.layout.main, null);

//创建一个LayoutParams对象

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

//设置android:layout_below属性的值

layoutParams.addRule(RelativeLayout.BELOW, R.id.button2);

//动态添加EditText

relativeLayout.addView(ed, layoutParams);

//设置布局

setContentView(relativeLayout);

}

}

自定义的EditText控件:

[html]  www.2cto.com

package com.mrzhu.edittest;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.util.AttributeSet;

import android.widget.EditText;

public class EditTextTest extends EditText {

public EditTextTest(Context context) {

super(context);

}

public EditTextTest(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

}

public EditTextTest(Context context, AttributeSet attrs) {

super(context, attrs);

}

@Override

protected void onDraw(Canvas canvas) {

Paint paint = new Paint();

paint.setTextSize(20);

paint.setColor(Color.GRAY);

canvas.drawText("输入提示文本:", 10, getHeight() / 2 + 5, paint);

super.onDraw(canvas);

}

}

main.xml:

[html]

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/linearlayout"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="horizontal" >

<Button

android:id="@+id/button2"

android:layout_width="80dp"

android:layout_height="80dp"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:layout_marginTop="150dp"

android:onClick="click"

android:text="Button" />

</RelativeLayout>

时间: 2024-08-02 08:33:03

Android--动态添加控件的相关文章

android 动态添加控件并实现每个子控件的点击事件

需求:我们要点击进入一家店铺,根据不同的店铺,显示不同条数的子条目 如:消毒间,洗菜间等...这些都是或多或少的,所以需要动态添加: 首先自定义View(linearLayout): package cn.qust.fang.widget; import io.vov.vitamio.MediaPlayer; import io.vov.vitamio.widget.MediaController; import io.vov.vitamio.widget.VideoView; import a

android动态添加控件

用LayoutParams:可以设定控件的一些属性 RelativeLayout insertLayout = (RelativeLayout)view1.findViewById(R.id.lay);//lay是一个RelativeLayout 布局的id ImageView img = new ImageView(MainActivity.this);//新建一个ImageView控件 img.setBackgroundColor(Color.parseColor("#ffbbb4"

Android动态添加控件约束位置

用LayoutParams: RelativeLayout insertLayout = (RelativeLayout)view1.findViewById(R.id.screen);//screen是一个RelativeLayout 布局的id ImageView imgApple2 = new ImageView(MainActivity.this); imgApple2.setBackgroundColor(Color.parseColor("#ffb6b4")); Relat

android 在布局中动态添加控件

第一步 Java代码 final LayoutInflater inflater = LayoutInflater.from(this); 第二步:获取需要被添加控件的布局 Java代码 final LinearLayout lin = (LinearLayout) findViewById(R.id.LinearLayout01); 第三步:获取需要添加的布局(控件) Java代码 LinearLayout layout = (LinearLayout) inflater.inflate( R

Android 在布局容器中动态添加控件

这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉已有的控件 3.使用,来个小demo就明白了 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save

New UI-Java代码动态添加控件或xml布局

New UI-Java代码动态添加控件或xml布局  --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http://blog.

Android 动态设置控件高度

TextView textView= (TextView)findViewById(R.id.textview); LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) textView.getLayoutParams(); //取控件textView当前的布局参数 linearParams.height = 20;// 控件的高强制设成20 linearParams.width = 30;// 控件的宽强制设成3

android动态设置控件的高宽

关键代码: LayoutParams para; para = mTabImg.getLayoutParams(); para.width=one; mTabImg.setLayoutParams(para); mTabImg是你要设置的控件  首先拿到后就可以设置 Display currDisplay = getWindowManager().getDefaultDisplay();// 获取屏幕当前分辨率 int displayWidth = currDisplay.getWidth();

winform导入导出excel,后台动态添加控件

思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(string extension = Path.GetExtension(fileDialog.FileName).ToLower();),并设置允许后缀文件名: 3,NPOI转datetable,遍历tatetable转成实体类列表并入库: 导出: 1, 创建提示用户保存类,SaveFileDial

C#动态添加控件到窗体不显示

在FormLoad里面添加控件时,用this.Controls.Add()方法向窗体里面动态添加控件,调试,一直不显示,后来发现原来窗体上有一个groupbox覆盖了整个窗体,其实控件已经添加上去了,只是被遮盖了. 后面改为this.groupBox1.Controls.Add(),把控件添加到groupbox里面就不会被遮盖了 1 private void UniqueForm_Load(object sender, EventArgs e) 2 { 3 if (pFlag == 1) 4 {