紧接前一篇日记:

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. HDU 1016(素数环 深搜)

    题意是说对一个长度为 n 的数环进行排列,使得相邻两数的和为素数,按从小到大的顺序依次输出. 因为是环,所以总能调整成以 1 为序列首输出.用深度优先搜索的方法即可.在判断素数时由于 n 小于 20, ...

  2. SQL Server2012安装流程

    今天手比较抽风,把原来的SQL Server给卸载了,卸载还卸了半天,真是…… 安装时找了好多教程,结果都不是很详细,然后准备自己摸索一下,把这个过程记录下来,供大家参考,如果有不当的地方,欢迎指正, ...

  3. 观察者模式--java

    写在前面 钩子函数.注册函数.回调函数,他们的概念其实是一样的. 观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察/监听的目标发生的情况,就会被监 ...

  4. nativefier - 快速把任意网页生成桌面应用程序

    使用前端技术开发桌面应用的技术已经相当成熟了,像早先的 NW.js,如今很火的 Electron 等,都可以轻松实现.今天给大家分享的 nativefier 就是基于 Electron 封装的,可以帮 ...

  5. H5网页适配 iPhoneX,就是这么简单

    iPhoneX 取消了物理按键,改成底部小黑条,这一改动导致网页出现了比较尴尬的屏幕适配问题.对于网页而言,顶部(刘海部位)的适配问题浏览器已经做了处理,所以我们只需要关注底部与小黑条的适配问题即可( ...

  6. idea 2018.1破解激活方法,有效期至2099年

    优点:有效期至2099年,不出意外,这辈子肯定够用了 缺点:稍微麻烦些,不过不要紧,为了以后省事,都值了 下面是具体的破解激活步骤: 1. 下载破解补丁文件,路径为:http://idea.lanyu ...

  7. python中yield的用法

    ---"在python中,当你定义一个函数,使用了yield关键字时,这个函数就是一个生成器" (也就是说,只要有yield这个词出现,你在用def定义函数的时候,系统默认这就不是 ...

  8. PHP之字符串匹配

    strstr(string,search): strstr() 函数搜索一个字符串在另一个字符串中的第一次出现. 该函数返回字符串的其余部分(从匹配点).如果未找到所搜索的字符串,则返回 false. ...

  9. cpp函数回调

    typedef void (PM::*E)(int c); typedef void (*EE)(); //typedef void *EE() = typedef void* EE(); 所以要加( ...

  10. Food Log with Speech Recognition and NLP

    1. 分词 word segmentation 国内有jieba 分词 2. Named Entity Recognition 训练自己的Model How can I train my own NE ...