Android学习笔记_31_通过后台代码生成View对象以及动态加载XML布局文件到LinearLayout

Android UI布局 Android UI----User InterfaceUser Interface LayoutsUI Overview编写xml User Interface Layouts UI Overview 布局可定义应用的页面结构(如Activity的界面结构)。布局中的所有元素均使用View和ViewGroup对象的层次结构进行构建。View通常绘制用户可查看并进行交互的内容。然而,ViewGro... 阅读详情

  一、布局文件part.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="64dp"
        android:text="添加" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10" >

        <requestFocus />
    </EditText>

</RelativeLayout>

  二、通过后台代码生成前台布局:

package com.example.codeui;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout layout=new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);//显示方向
        
        //将view对象添加到布局界面
        TextView textView =new TextView(this);
        textView.setText("Hello Code UI");
        ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
        //添加
        layout.addView(textView,params);
        
        //添加外部xml定义的布局
        View view = getPartView();
        layout.addView(view);
        
        ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT);
        setContentView(layout, layoutParams);
        //setContentView(R.layout.activity_main);
        //采用代码编写效率高,但是很难维护
    }

    //通过加载xml文件将view添加到布局中
    public View getPartView() {
        //将xml布局文件生成view对象通过LayoutInflater
        LayoutInflater inflater =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        //将view对象挂载到那个父元素上,这里没有就为null
        return inflater.inflate(R.layout.part, null);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

 

Android从xml加载到View对象过程解析 主要介绍了 Android从xml加载到View对象过程解析的相关资料,需要的朋友可以参考下 立即下载

相关推荐

飞控算法-姿态解算之互补滤波

飞控乱入之姿态解算 姿态解算是通过读取各个传感器的数据进行融合最终得到当前飞行器的姿态,姿态通常用Euler角(Roll-Pitch-Yaw)来表示 姿态解算框架 姿态解算的数据源可来自于陀螺仪或加速度计,他们分别都可以得到当前姿态,但实际上他们都有各自的传感器性能的优缺点,需要取长补短,进行数据融合才能得到真实的姿态,这种方法简称 互补滤波 算法 传感器特性 互补滤波 姿态解...

GoolyOh的专栏 1万+

android布局 填充,android中填充界面布局的三种方式

android中填充界面布局的三种方式发布时间:2020-07-29 11:53:08来源:51CTO阅读:1590作者:杨少华_55161改变原来界面布局的三种方式:1、第一种方式:LayoutInflater li = LayoutInflater.from(this);具体代码:public class MainActivity extends Activity {@Overrideprot...

weixin_33321637的博客 707

华北理工大学以升实验班蓝桥杯选拔赛题解

文章目录华北理工大学以升实验班蓝桥杯选拔赛题解A:期末考试题目描述题目讲解代码B:月份题目描述题目讲解代码C:打饭题目描述题目讲解代码D : 正弦波信号题目描述题目讲解代码E : 亲爱的长方形题目描述题目讲解代码F:挖金子题目描述题目讲解代码G : 金金的游戏题目描述题目讲解代码H : 区间和题目描述题目讲解代码详细视频讲解请关注华北理工大学b站账号。 华北理工大学以升实验班蓝桥杯选拔赛题解 A:期末考试 题目描述 Description 期末考试过去许多天了,如今成绩都出来了,那么现在让我们对成绩我分个类

Qq1739206233的博客 1128

android数据填充和解析(实例)

Android技能竞赛题目演练: 现在讲解的是我们的热门服务和热门主题: 涉及到的知识点有: 1: okhttp 请求的编写(在这不做讲解) 2: Glide网络图片的加载框架(可以快速简单的加载图片) 3: Recyclerview 的编写和网络数据填充 4: gson解析数据 大致的步骤就是这些,我按我的理解将我们思路梳理了一下,到现在的话我愈发理解的总结归纳的重要性,一个知识点其实难度并不大,难的是我们很多人都没有养成总结归纳的习惯 如果对知识点没有总结归纳的话不仅会影响到你的学习理解效率而且你在学习

qq_45973003的博客 429

K-近邻算法: k-nearest neighbor classification (kNN) 详细介绍

@创建于:2020.04.09 @修改于:2020.04.09,2024.06.22 文章目录1、kNN介绍2、k近邻法的三要素详解2.1 距离度量2.2 k值的选择2.3 分类决策规则3、k近邻法的实现:kd树4、Python实现过程5、优缺点6、常见问题 1、kNN介绍 kNN是一个基本而简单的分类算法,作为监督学习,那么KNN模型需要的是有标签的训练数据,对于新样本的类别由与新样本距离最近的k个训练样本点按照分类...

chenhepg的博客 9万+

SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)

SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)Step 1 软件安装Step 2 硬件获取Step 3 开始从头到脚建一个工程Step 3.1 新建一个工程 从0开始学习FPGA,最好的办法就是先建一个最简单的模块,并且跑起来,然后再慢慢展开。下面这个例子是要按照一定的周期点亮核心板上的一个led。 Step 1 软件安装 这个从0开始学习是用的xilinx的SPARTAN6。SPARTAN6集成开发环境用ISE,不能用Vivado,各自对应的版本不同。安装

xfacexx点点记录 5516

Android Layout XML属性 及 控件属性

控件属性: android属性 Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料, 第一类:属性值为true或false android:layout_centerHrizontal  水平居中 android:layout_centerVertical   垂直居中 android:layout_centerInparent   

yangxs_cn的专栏 1431

构建高可用CephFS NFS网关:NFS-Ganesha与RADOS集群的深度整合

本文详细介绍了如何构建高可用的CephFS NFS网关,通过NFS-Ganesha与RADOS集群的深度整合,实现高效文件共享。文章涵盖核心架构、部署实战、性能调优及避坑指南,帮助用户解决Ceph客户端兼容性问题,提升存储访问效率。特别强调高可用设计,确保服务稳定性,适用于金融、电商等高要求场景。

weixin_26976635的博客 254

简单的Android XML布局使用

Android XML布局 前言 今天我们来简单介绍一下Android的XML布局以及三种常见的XML布局 目录 1.XML布局的优点 在XML文件中设计UI可以更好地将应用的外观与控制应用行为的代码隔离,每次修改或调整界面布局只需要修改XML文件的代码而不是修改源码和重新编译。 2.XML布局基础介绍 2.1 调用XML布局 在编译XML布...

小爱你12138的博客 2万+

【AHE数据集】中国2019年多源热排放数据集-500m空间分辨率

【AHE数据集】中国2019年多源热排放数据集

WW、forever的博客 411

如何使用 Conda 安装 Qiskit(详细教程)

本文介绍了使用conda安装Qiskit量子计算工具包的完整流程。首先创建Python 3.10的conda虚拟环境(qiskit_env),然后安装Qiskit核心包及可视化组件(注意Mac用户的安装命令差异)。接着注册IPython内核并测试环境,通过量子电路创建与可视化演示验证安装成功。该教程为量子计算开发提供了简洁的环境配置指南,适合研究者和开发者快速搭建Qiskit开发环境。

猿小白的博客 565

android xml view对象,Android从xml加载到View对象过程解析

我们从Activity的setContentView()入手,开始源码解析,//Activity.setContentViewpublic void setContentView(int layoutResID) {getWindow().setContentView(layoutResID);initActionBar();}//PhoneWindow.setContentViewpublic ...

weixin_29722783的博客 486

华为OD新系统机试真题-勇攀数字高峰(Java/Py/C/C++/Js/Go)

新系统 华为OD机试新系统【勇登数字高峰】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统机试真题【勇登数字高峰】

qq_45776114的博客 1548

安卓动态加载view

安卓动态加载view

似霰的博客 2435

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Android Studio [水平布局LinearLayout]

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:tools="http://schemas.android.com/tools" ...

weixin_43847567的博客 894

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

android动态布局实例教程,Android动态布局使用详解

本文为大家分享了Android动态布局的实现代码,供大家参考,具体内容如下内容如下:介绍多种实现动态布局的方法,以及如何用代码来调整View位置这里只介绍三种布局情况(注意不是方式)1、无xml : 一个父类布局包含一个子父类布局,子父类布局中包含ImageView2、无xml : 只有一个父类布局包含一个ImageView3、有xlm布局: 通过布局ID 来进行动态布局添加总结了下其实步骤如下:...

weixin_33125137的博客 824

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Android动态布局使用详解

本文为大家分享了Android动态布局的实现代码,供大家参考,具体内容如下 内容如下:介绍多种实现动态布局的方法,以及如何用代码来调整View位置 这里只介绍三种布局情况(注意不是方式) 1、无xml : 一个父类布局包含一个子父类布局,子父类布局中包含ImageView 2、无xml : 只有一个父类布局包含一个ImageView 3、有xlm布局: 通过布局ID 来进行动态布局添...

lizhong 3257

Android LinearLayout添加间隔(Divider)的正确姿势

最优解 我们直接看最优解 int width = 50; LinearLayout linearLayout = findViewById(R.id.ll_5_base); GradientDrawable drawable = new GradientDrawable(); drawable.setSize(width,1); linearLayout...

木寸~ 2万+

第31篇 Android Studio实现五子棋游戏(二)布局

第31篇 Android Studio实现五子棋游戏(二)布局1.界面布局1.1.整体布局1.2.棋盘界面1.3.代码2.strings.xml 1.界面布局 我在做界面的时候,就喜欢自己先手绘一下大概的界面,然后再看看有没有什么要添加的地方,还或者删减的地方,都说了写文档的编码就比较快,但是我这个人心是比较急的,没有坚持把文档写完就开始编码了,有些地方如果先写文档,那就是很好的,因为当你已经开始编码了,再思考,那么可能又要修改很多地方了。 因此未来避免过多得增删,所以先写文档是非常有必要的,因为已经达到了

weixin_49188222的博客 2323

Android View 绘制流程之一:measure测量

Android View 绘制流程之一:measure测量一.MeasureSpec测量规格二.LayoutParams布局参数1.ViewaddViewLinearLayout的generateDefaultLayoutParams2.xml三.Measure整体流程四.常见onMeasure实现1.测量子View方法(1)measureChildren()(2)measureChild()(3...

依生依世 1577

Android UI布局与控件开发实战指南

Android UI开发是移动应用构建的核心环节,基于视图(View)和视图组(ViewGroup)的层级结构实现界面布局。系统提供多种布局类型如LinearLayout、ConstraintLayout等,通过XML文件定义控件排列规则,结合测量-布局-绘制流程完成界面渲染。优秀的UI设计需要兼顾代码复用性(include标签)、性能优化(减少嵌套层级)和跨设备适配(多屏幕尺寸支持)。本文以登录界面为例,详解如何使用权重分配、ViewStub延迟加载等实用技巧,并介绍Hierarchy Viewer等工具

weixin_34387468的博客 402

Android 动态增加控件(转)

核心提示:android控件动态使用 通常android里的界面布局都是在XML里设定好的 也就是说 在程序中,不能更改界面上的元素数量等, 比如上图所示的一个 android控件动态使用 通常android里的界面布局都是在XML里设定好的 也就是说 在程序中,不能更改界面上的元素数量等, 比如上图所示的一个 聊天会话界面 当有人发言就要增加一个TextView, 这就是动态增加控件, 这就不能在XML里事先布局了! 不过还

Lucker's PowerSpace 4978

【原创】Android多个xml文件的使用

Android中经常会使用多个xml文件,但在Mainactivity中使用的setContentView(R.layout.main)只加载main.xml文件,其他xml文件不加载进当前视图,当我们要用到其他xml文件中的控件是发现直接使用findViewById()方法时不报错但控件的值找不到为null,而一旦为该控件添加相应事件就会出现空指针异常。原因就在于控件并未加载进当前视图...

acjack7070467的博客 515

Android学习笔记31:使用惰性控件ViewStub实现布局动态加载

  在Android开发中,经常会遇到这样的情况,在程序运行过程中动态的根据当前条件来决定是否显示某个控件或布局,这时就可以使用惰性控件ViewStub来方便的完成这一功能。   惰性控件ViewStub是一个轻量级的View,可以实现动态布局加载。ViewStub对象是一个看不见的,零大小的视图,并在程序运行时根据需要进行动态加载。只有当ViewStub对象被设置为可见,或是调用了...

weixin_30338481的博客 74
上一篇: Android学习笔记_30_常用控件使用
下一篇: Android学习笔记_32_通过WebView实现JS代码与Java代码互相通信
乐由心起
博客等级 码龄16年 61粉丝 295原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值