首页 > 代码库 > 开始看《第二行代码》及官方第一个例程学习(部分)
开始看《第二行代码》及官方第一个例程学习(部分)
本来是想先看看官方的例子学的,结果第一个就碰到问题了。。。果然有点不合适,上网找了一些书籍,发现第一行代码不错,可惜是基于eclipse的,偶然看到出第二版了,还基于Android studio 我立马决定照着这本教材学!!!开始之前我就想先找找书上例子的源码,结果发现书上开头几页已经写了网址了,去github找到后就是复制链接
然后下载git,用Android studio 导入进去,具体上网搜,导入进去之后可能会有一点错误,反正我的是有些东西没装,点下面错误里的内容就自动安装能直接编译运行了,这样就不怕出现像第一次照着官方教程结果出错的情况了,我试了几个例程 都能用,这样准备工作就做好了。总算可以开始了。
待续
关于官方第一个例程的学习(部分)
就是官方的第一个例子,熟悉一下布局文件
app > java > com.example.myfirstapp > MainActivity.java
完成新项目向导后,该文件将显示在 Android Studio 中。 它包含您之前创建的 Activity 的类定义。当您构建并运行应用时,Activity
会启动,并加载显示“Hello world!”的布局文件。app > res > layout > activity_main.xml此 XML 文件定义您的 Activity 的布局。app > manifests > AndroidManifest.xml清单文件描述应用的基本特性并定义其每个组件。 Gradle Scripts > build.gradle
Android Studio 使用 Gradle 来编译和构建您的应用。您的项目的每个模块都有相应的 build.gradle
文件,整个项目也有相应的 build.gradle
文件
关于布局文件
View
对象通常为按钮或文本字段之类的 UI 小部件。而 ViewGroup
对象则为不可见的视图容器,它们定义子视图的布局,比如是网格布局还是垂直列表布局。
修改布局文件,新建工程后在hello world的基础上修改两个文件activity_main.xml strings.xml
activity_main.xml代码如下
<?xml version="1.0"encoding="utf-8"?>
<LinearLayout 这个是前面讲过的viewgroup类的子类,也就是选择线性输出的方式
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:orientation="horizontal"> 这个指定了组件为横向还是纵向排列
<EditTextandroid:id="@+id/edit_message" 在里面增加一个EditText元素
android:layout_weight="1" weight设置与其他界面所占位置的比例,其他默认为0时就先给其他分配默认空间,剩余的都给非零的
android:layout_width="0dp" 赋值免得系统计算宽度浪费时间,反正最后是给其他界面的剩余宽度
android:layout_height="wrap_content"
android:hint="@string/edit_message"/> hint就是没输入时输入框里显示的东西 <Button 增加button元素
android:layout_width="wrap_content" wrap_content布局大小根据内容大小更改
android:layout_height="wrap_content"android:text="@string/button_send"/>
</LinearLayout>
关于@多说一下
从 XML 引用任何资源对象时,都需要使用 @
符号,后跟输入资源类型(本例中为 id
)、斜杠和资源名称 (edit_message
)
加号代表要把这个资源加到R.java中去,所以只有第一次使用才需要写(老实说现在还是有点不懂为什么其他的不写,先放着吧)
然后引用的资源都在res>values下,这里用的就是string而已,打开 代码如下
<resources> <string name="app_name">My Application</string> <string name="edit_message">Enter a message</string> <string name="button_send">Send</string> </resources>
另外,看一下类和子类的概念:JAVA中的类是具备某些共同特征的实体的集合,它是一种抽象的概念;
类是对象的集合,对象是类的实例;对象是通过new className产生的,用来调用类的方法;类的构造方法
子类由父类继承而来,可以在父类的基础上修改
上文运行后是个输入框的效果,接着来为按钮增加响应
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage" />
onclick是个方法 后面那个是要写的响应动作的方法(要为公共方法),具体实现要在.java里写
要让系统将此方法与为 android:onClick
指定的方法名称匹配,签名必须与所示内容完全相同。具体而言,该方法必须:
- 是公共方法
- 具有空返回值
- 以
View
作为唯一参数(这将是之前点击的View
)(这个我也还不清楚)
<!-- xml注释格式,只能写在黄字位置 -->
待续
刚开始学 有错误请指教
开始看《第二行代码》及官方第一个例程学习(部分)