Android学习笔记(9):使用XML文件和Java代码控制UI界面
Android推荐使用XML文件设置UI界面。然后用Java代码控制逻辑部分,这体现了MVC思想。
MVC全名是Model View Controller。是模型(model)-视图(view)-控制器(controller)的缩写。一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面。在改进和个性化定制界面及用户交互的同一时候,不须要又一次编写业务逻辑。
我们能够在app\src\main\res\layout文件夹下定义一个XML文件(R.java文件会自己主动收录该资源)。然后能够在Java代码的Activity组件中通过setContentView(R.layout.<资源文件名称字>)显示出来。
在XML文件里加入组件的时候。能够为组件指定android:id属性,然后就能够在Java代码中通过findViewById(R.id.<android:id属性>)訪问该组件。
当然android也支持全然使用Java代码设置UI界面,实现类似于Swing,以下是一个简单的样例:
package zxc.blogtest; import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView; public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
super.setContentView(layout);
layout.setOrientation(LinearLayout.VERTICAL);
final TextView show = new TextView(this);
Button bn = new Button(this);
show.setText("HelloWorld");
bn.setText("Button");
layout.addView(show);
layout.addView(bn);
}
}
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
创建组件时传入的this是一个Context參数,这是Activity和Service的基类,传入的參数能够让UI组件获取到Android的全局变量。
这样的设置UI界面的方式很不优美,并且和其它的逻辑代码放在一起会让人认为很混乱,很不推荐。
关于XML文件。前面已经有了简单的介绍,后面也将会有相当多的博客来介绍这方面的内容,这里就先不说了。
Android学习笔记(9):使用XML文件和Java代码控制UI界面的更多相关文章
- 使用XML文件和Java代码控制UI界面
Android推荐使用XML文件设置UI界面,然后用Java代码控制逻辑部分,这体现了MVC思想. MVC全名是Model View Controller,是模型(model)-视图(view)-控制 ...
- Android学习笔记之AndroidManifest.xml文件解析(转)
//自已备注: <?xml version="1.0" encoding="utf-8"?>//说明了版本号,字符集 <manifest xm ...
- Android学习笔记之AndroidManifest.xml文件解析
一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activiti ...
- Android学习笔记之AndroidManifest.xml文件解析(详解)
一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activiti ...
- 八、Android学习第七天——XML文件解析方法(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...
- 【转】 Pro Android学习笔记(二二):用户界面和控制(10):自定义Adapter
目录(?)[-] 设计Adapter的布局 代码部分 Activity的代码 MyAdapter的代码数据源和构造函数 MyAdapter的代码实现自定义的adapter MyAdapter的代码继续 ...
- 【转】 Pro Android学习笔记(十九):用户界面和控制(7):ListView
目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只 ...
- 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout
目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...
- Android color(颜色) 在XML文件和java代码中
Android color(颜色) 在XML文件和java代码中,有需要的朋友可以参考下. 1.使用Color类的常量,如: int color = Color.BLUE;//创建一个蓝色 是使用An ...
随机推荐
- 2.WHERE中使用=,>,>=,<,<=,<>,!=比较符号
//查询工资大于等于2000的人 select * from person salary >= 2000; //查询名字等于scott的人 select * from per ...
- 基于redis ae实现 Linux中的文件系统监控机制(inotify)
(英文部分为转的.代码是个人代码) 1 What's inotify The inotify API provides a mechanism for monitoring file system ...
- JAVA设计模式之【代理模式】
代理模式 通过代理对象间接访问 代购 客户端不想或者不能直接访问一个对象,可以通过一个称为代理的第三者来实现间接访问,该方案称为代理模式 角色 抽象主题角色Subject 声明真实主题类与代理类的公共 ...
- [bzoj 1398] Vijos1382寻找主人 Necklace 解题报告(最小表示法)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1398 题目: Description 给定两个项链的表示,判断他们是否可能是一条项链. ...
- HD-ACM算法专攻系列(11)——Exponentiation
问题描述: 源码: 考察对大数的计算,需要注意去除前导0与后导0. import java.math.BigDecimal; import java.util.*; public class Main ...
- (转载)带有res资源文件的项目 需要导成jar包 供别人使用的解决方法
比如说自己的成品项目,名字是MyObject,需要导出成jar包,让别人的项目调用,但是自己的项目还包含有图片.layout布局.libs里面的依赖包等等: 步骤: 1.MyObject项目需要“is ...
- HDU 3015 Disharmony Trees 【 树状数组 】
题意:给出n棵树,给出横坐标x,还有它们的高度h,先按照横坐标排序,则它们的横坐标记为xx, 再按照它们的高度排序,记为hh 两颗树的差异度为 abs(xx[i] - xx[j]) * min(hh[ ...
- swfit的特点
swfit的特点: 1.swift句尾不需要分号,除非你想在一行中写三行代码就加分号隔开. 2.swift不要写main函数,程序默认从上往下执行 3.swift不分.h和.m文件,一个类只有.swi ...
- [NOI2014]动物园(KMP)
题意 题解 因为,一直用j=nxt[j]来遍历,可以遍历前i个字符所有相等的前后缀长度,所以有一个暴力的想法,就是对于每一个长度,开始遍历,记录长度小于i/2的相等的前后缀数量,最后累加即可. 但显然 ...
- BZOJ 5394 [Ynoi2016]炸脖龙 (线段树+拓展欧拉定理)
题目大意:给你一个序列,需要支持区间修改,以及查询一段区间$a_{i}^{a_{i+1}^{a_{i+2}...}}mod\;p$的值,每次询问的$p$的值不同 对于区间修改,由线段树完成,没什么好说 ...