紧接前一篇日记:

2.增加文本域

在<LinearLayout>中增加<EditText>元素,无格式设置的时候如下。

<EditText android:id="@+id/edit_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />

大致属性解释:

adroid:id

  表明在该界面中唯一的标识。在后台代码中可以通过引用这个标识,来读取或者操作这个对象。 

  @标记:在XML涉及任何资源对象时都必须添加该标记。在该标记的后面紧跟资源类型(在示例1中是id),斜线,资源名称(此处为edit_message)。

  +标记:只在第一次定义某资源ID的时候,需要写在资源类型前。当你编译程序的时候,SDK工具会自动在gen/R.java使用ID名在项目中新建一个资源ID指向EditText元素。当该元素申明过一次之后,在其他地方对该ID的引用就不再需要写上加号(+)标记了。使用加号标记时必须是在新建一个资源ID,并且不需要在一个具体资源(像String、layout等)上前添加。

  PS:

关于资源对象:
一个资源对象只是一个简单的与某个应用程序资源相关联唯一整数命名。(应用程序资源包括:位图、布局文件、文字等)。
每个资源都在gen/R.java文件中定义有相应的资源对象。你可以使用在R类中的对象名来引用你的资源,比如当你需要为anroid:hint 属性指定一个字符串值。
你也可以创建一个任意的ID值,用在视图的android:id属性上,就可以通过这个ID在其他的代码里调用这个视图了。 SDK工具会在你每次编译程序的时候自动生成的R.java。所以不应该去手动修改R.java的代码。
如果需要了解更多信息,可以查看Providing Resources.

android:layout_width android:layout_height

  "wrap_content" 不可以指定宽度和高度,只能按照输入内容进行自动调整,最大范围为该视图允许的内容范围。如果用"match_parent"代替的话,那么这个EditText

将会覆盖整个屏幕,因为它将和父级窗口整个LinearLayout一样大。关于布局的了解跟多的可以查看Layouts 指南。

android:hint

  为一个空的文本域设置默认字符串。在单独的文件中定义一个字符串值,并通过ID "@string/edit_message"去引用这个值,而不是使用硬编码。因为这是一个具体的资源,而不是某个定义,所以不需要写加号(+)。但你也必须定义一个字符串资源,目前会发现这个引用处于编译错误(红色下划线)的状态。你将会在下一部分教程中通过定义字符串解决这个问题。

NOTE:
此字符串资源使用了与EditText相同的名称作为元素的ID:edit_message。但是,引用资源范围是区分资源类型(如ID或字符串)的,所以使用相同的名称不会引起冲突。

3.Add String Resources(添加字符串资源)

  当需要在用户界面上增加文字时,应该把每一个字符串都指定为一个资源。字符串资源允许在一个单独的地方管理所有的界面文字,这样便可以更容易找到和更新这些文字。字符串的具体化还可以通过提供替代定义为每个字符串资源以不同的语言本地化您的应用程序。

  默认情况下,android工程字符串资源文件都在res/values/strings.xml.增加一个新的字符串命名"edit_message" ,设置值为"Enter a message"。现在你可以删除"Hello world "了。

  同时增加一个值为"Send" 命名为 "button_send"的字符串,你将会在后面使用。

  增加好后,strings.xml大概如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">My First App</string>
<string name="edit_message">Enter a message</string>
<string name="button_send">Send</string>
<string name="action_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
</resources>

  要了解更多的关于为不同语言将应用进行本地化,可以查看Supporting Different Devices 。

4.Add Button(添加按钮)

  在布局中的EditText 元素后增加一个Button元素,

   <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send" />

  高度和宽度设置为 "wrap_content"后,这个按钮就的大小将只是按钮文字显示所需要的大小。按钮也不需要anroid:id属性,因为它不会被操作代码引用。

5.Make the Input Box Fill in the Screen Width(调整输入框宽度充满整屏)

Android Day2的更多相关文章

  1. android开发学习——day2

    简单了解了android stdio的操作方式,今天着手于探究活动(Activity) 了解了基本活动与手动创建活动的方法,了解了onCreate()方法,了解了创建和加载页面布局(layout) 新 ...

  2. 安卓开发学习日记 DAY2——android项目文件

    当一个android项目建立时,会有一个目录,以下为目录所包含内容 src:放置java源代码 gen:基本不会做任何更改,放置自动生成的配置文件(主要是R文件) Android4.4.2:放置当前版 ...

  3. Android 笔记 day2 拨号器

  4. android开发时间和日期的代码实现工具类(一)

    android开发时间和日期工具类的代码实现: package com.gzcivil.utils; import android.annotation.SuppressLint; import an ...

  5. Android学习路径图

    一个PHPer转战Android学习过程: 直接跨过java的学习,原因有我之前看过毕向东和张孝祥的Java基础课程,虽然中间好几次看睡着,但java的环境是能跑起来的.我建议大家如果没有Java基础 ...

  6. PHPer转战Android的学习过程以及Android学习

    原文作者: eoeadmin原文地址: http://my.eoe.cn/shuhai/archive/19684.html-------------------------------------- ...

  7. Apha冲刺! Day2 - 砍柴

    Alpha冲刺! Day2 - 砍柴 今日已完成 晨瑶:没做和主项目相关的事情,除了教队友用gitkraken. 昭锡:学习LitePal对数据库进行操作. 永盛:切换 API 管理平台,继续撰写 A ...

  8. 「Android 开发」入门笔记

    「Android 开发」入门笔记(界面编程篇) ------每日摘要------ DAY-1: 学习笔记: Android应用结构分析 界面编程与视图(View)组件 布局管理器 问题整理: Andr ...

  9. Android SQLiteOpenHelper Sqlite数据库升级onUpgrade

    Android Sqlite数据库升级,在Android APP开发之中,非常常见: 在确定原来的数据库版本号之后,在原来数据库版本号+1,就会执行onUpgrade方法,进行数据库升级操作: 在on ...

随机推荐

  1. 【leetcode-86】 分隔链表

    (1过) 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前. 你应当保留两个分区中每个节点的初始相对位置. 示例: 输入: head = 1-> ...

  2. 2018牛客网暑期ACM多校训练营(第一场)E Removal(DP)

    题意 给你一个大小为n的数组,你可以删掉数组中的任意m个数,问你在删除m个数之后剩下的数组有多少种.(其中数组的每个数的大小<=k) 分析 显然需要动态规划,而k又很小,所以二维dp没问题. 设 ...

  3. Centos配置ARP和Tomcat Native

    Tomcat Native是用于Tomcat的一个可选组件,能够允许Tomcat使用一定的本地资源.性能.兼容性. 具体来说,Tomcat Native给了Tomcat访问 Apache Portab ...

  4. 10、 在QQ音乐中爬取某首歌曲的歌词

        需求就是把关卡内的代码稍作修改,将周杰伦前五页歌曲的歌词都爬取下来,结果就是全部展示打印出来.       URL  https://y.qq.com/portal/search.html#p ...

  5. while循环、格式化输出、运算符和编码初识

    while循环 1. while循环的结构 while 条件: 执行语句1 执行语句2 i = 0 while i < 10: print(i) i += 1 运行结果 0 1 2 3 4 5 ...

  6. 一次enq: TX - index contention等待事件处理

    收到告警短信: BOMC一般告警,告警2次,最后告警时间:03-03 22:21,监控对象:/XX系统/数据库/ORACLE数据库/XXX.XX.XX.XX*XXXDB_LE_DBS/ORACLE实例 ...

  7. 【Ubuntu】安装Java和Eclipse

    1. 安装Java 1> sudo add-apt-repository ppa:webupd8team/java 2> sudo apt-get update 3> sudo ap ...

  8. 基于Android 的蓝牙A2DP 功能的实现

    摘 要:蓝牙(Bluetooth)技术是一种低成本的无线数据与数字通信的开放性全球规范. Android 是Google 于2007 年11 月5 日宣布的基于Linux平台开源手机操作系统名称,该平 ...

  9. 迅为4412开发板QtE系统源码-屏幕横竖屏切换修改方法

    迅为4412开发板QtE系统源码-屏幕横竖屏切换修改方法 详情了解:http://topeetboard.com 更多了解:https://arm-board.taobao.com/ 用户在开发板上运 ...

  10. linux 添加并格式化新硬盘

    linux挂载磁盘1. 格式化磁盘mkfs -t ext4 /dev/sdb2. 挂载mount /dev/xvdb /home3. 查看磁盘对应的uuidblkid4. 加入开机自动挂载,在/etc ...