Android应用初体验
来源:互联网 发布:昆山cnc编程招聘 编辑:程序博客网 时间:2024/05/01 08:05
根据书籍进度来记录android的学习过程,第一章是一个简单的问答应用,由这个应用衍生的问题来初步了解android应用的结构。
该应用的视图由一个XML文件(activity_quiz.xml)构成,这里LinealLayout是作为根元素,但它也有父视图(View),Android提供该父视图来容纳应用的整个视图层级结构。
相关组件属性:
layout_width,layout_height几乎是所有组件里的必备属性,用来表示该组件在视图里的宽和高
属性值为:match_parent:视图与父视图大小相同
warp_content:视图根据内容自动调整大小
另外:fill_parent:等同于match_parent,目前已废弃不用
视图结构为:
LinealLayout(垂直、居中)
| -----TextView(显示问题)
| -----LinearLayout(两个按钮)
|----Button
|----Button
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/question_text" android:padding="24dp" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/true_button" android:id="@+id/true_button" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/false_button" android:id="@+id/false_button" /> </LinearLayout></LinearLayout>
android:orientation属性:决定该组件的子组件是水平放置还是垂直放置,这里根LinearLayout是垂直(vertical),子LinearLayout是水平(horizontal)
android:gravity属性:相对于父组件(View)的放置位置,center_vertical是相对于垂直的中间位置存放(下图左),center_horizontal是相对于水平位置的中间位置存放(下图中),center是相对于垂直和水平的中间位置存放(下图右)
android:text属性:指定组件显示的相关文字内容,这里我们可以直接填写相应的文字,但为了规范,一般是通过@指向一个索引的文件里对应ID的文字内容(对字符串资源的引用)
关于字符串资源,存在于一个名为strings.xml的文件里,可以在里面定义一些字符串资源,需要用到的时候直接通过@string/XX直接引用对应的name即可。而所有资源的ID(不仅是strings.xml,还有其他相关的比如layout资源,drawabe资源都会在目录gen下面的R.JAVA文件里自动生成相对于的索引,前提是在组件相关的地方定义加入索引相关的内容,比如@+id/true_button 就是在R.java下面增加该组件对应的id索引)
strings.xml------------>字符串资源的定义
R.JAVA------->对应资源里的序列ID
视图组件设置好后,需要实际应用了,这里视图因为只有一个问题,两个选择按钮,所以视图主要由一个TextView和两个Button按钮构成。
而通过XML元素转换成为视图对象,我们需要创建一个Activity类,名字是QuizActivity,该类继承Activity,并需要重写oncreat方法,然后该Activity在初始化创建时,应该讲XML视图实例化对象,这里用到
setContentView(R.layout.activiti_quiz);//这里用到引用R.JAVA里layout的对应值。注:如果项目包导入的是系统本身的android.R的话,可能找不到对应的资源,导包需要注意
而此应用是一个带选择的功能,所以两个按钮需要设置监听器,以确保用户选择后弹出对应的信息。所以我们先声明两个按钮,然后设置对应的监听器,因为android应用属于典型的事件驱动类型。
代码片段
android SDK内置了很多监听接口,因此只需要实现对应接口即可,一般使用匿名内部类,而该应用事件触发后,应该告诉用户是否选择正确,所以我们创建一个提示消息,这里用到Toast。
至此基本都做完了,但是书中的示例是在helloWord上更改的,有些细节并未列出。
这里一一指出,QuizActivity是需要进行注册的,并且由于它是唯一个Activity,应用启动后得启动一个默认的Activity,所以我们都需要配置,配置文件是AndroidManifest.xml
此文件用来注册应用的相关信息
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.geoquiz" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.android.activity.QuizActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application></manifest>
该Activity是应用默认启动的Activity,所以配置里面指明了。
android.intent.action.MAIN --------决定最先启动的Activity
android.intent.category.LAUNCHER ------决定是否出现在应用程序列表里
- Android应用初体验
- Android 7.1初体验之应用快捷键
- 使用Kotlin开发Android应用初体验
- 使用Kotlin开发Android应用初体验
- 使用Kotlin开发Android应用初体验
- Android应用端秒开优化体验
- Android Things 物联网应用开发初体验
- 无源码,Robotium测试Android应用初体验
- 用户体验导向的Android应用开发
- 用户体验导向的Android应用开发
- Android应用提升性能和用户体验
- Android应用提升性能和用户体验
- Android端应用秒开优化体验
- Android端应用秒开优化体验
- Android端应用秒开优化体验
- Android端应用秒开优化体验
- Win81的应用初体验
- Android初体验
- Leetcode【1】:Two Sum
- QT_PC学习_GUI程序设计入门
- MVC 联动 dropdowlist
- 什么时候我能见到你
- 尚学堂马士兵struts2 课堂笔记(三)
- Android应用初体验
- 3:jdbc 连接池,批处理,图片处理等
- PHP <?= Uri::base(false) ?> 无法解析
- 几个常用的javascript框架比较
- Struts2的web.xml(前端控制器的配置)
- C# 支付宝接口
- Swift编程语言资料大合集
- scala编程系列(11)-scala富包装器
- as3 消息分发器