Android动态生成Relativelayout + button

2024-01-12 05:18

本文主要是介绍Android动态生成Relativelayout + button,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要求:输入每行btn个数,输出一共200个btn。

直接上代码,参考了csdn上的博客 android:动态创建多个按钮

不需要任何XML文件即可显示出btn。

import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;public class MainActivity extends AppCompatActivity {private EditText editNum;private Button addbtn;DisplayMetrics dm = new DisplayMetrics();//MainActivity().getMetrics(dm);int width = dm.widthPixels;int height = dm.heightPixels;Button[] btt = new Button[205];//RelativeLayout layout = new RelativeLayout(this);@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);final RelativeLayout rlayout = new RelativeLayout(this);RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT );RelativeLayout.LayoutParams layoutParams2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);layoutParams2.addRule(RelativeLayout.ALIGN_PARENT_LEFT );rlayout.setLayoutParams(layoutParams);editNum = new EditText(MainActivity.this);editNum.setHint("请输入个数");editNum.setLayoutParams(layoutParams2);addbtn = new Button(MainActivity.this);addbtn.setWidth(100);addbtn.setHeight(40);addbtn.setText("add");addbtn.setLayoutParams(layoutParams);rlayout.addView(editNum);rlayout.addView(addbtn);addbtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {int linenum = Integer.parseInt(editNum.getText().toString());DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);int width = dm.widthPixels;int height = dm.heightPixels;Button Btn[] = new Button[205];int j = -1;for  (int i=0; i<200; i++) {Btn[i]=new Button(MainActivity.this);Btn[i].setId(i);Btn[i].setText("B"+i);RelativeLayout.LayoutParams btParams = new RelativeLayout.LayoutParams ((width-50)/linenum,120);if (i%linenum == 0) {j++;}btParams.leftMargin = 10+ ((width-50)/linenum+10)*(i%linenum);btParams.topMargin = 120 + 120*j;   rlayout.addView(Btn[i],btParams);   }}});setContentView(rlayout);}}

运行效果

参考博文:https://blog.csdn.net/lihengfang/article/details/8204238

这篇关于Android动态生成Relativelayout + button的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/596909

相关文章

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

Java调用C#动态库的三种方法详解

《Java调用C#动态库的三种方法详解》在这个多语言编程的时代,Java和C#就像两位才华横溢的舞者,各自在不同的舞台上展现着独特的魅力,然而,当它们携手合作时,又会碰撞出怎样绚丽的火花呢?今天,我们... 目录方法1:C++/CLI搭建桥梁——Java ↔ C# 的“翻译官”步骤1:创建C#类库(.NET

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

python如何生成指定文件大小

《python如何生成指定文件大小》:本文主要介绍python如何生成指定文件大小的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python生成指定文件大小方法一(速度最快)方法二(中等速度)方法三(生成可读文本文件–较慢)方法四(使用内存映射高效生成

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL