Android应用开发之用一个小程序设计来讲述Android的入门开发
凌雪 2018-09-20 来源 :网络 阅读 501 评论 0

摘要:本文将带你了解Android应用开发之用一个小程序设计来讲述Android的入门开发,希望本文对大家学Android有所帮助。

本文将带你了解Android应用开发之用一个小程序设计来讲述Android的入门开发,希望本文对大家学Android有所帮助。


初次接触Android内容,这次首先从Android的一些基本概念以及一些基本的UI组件开始,作为Android的入门吧。以教材中的GeoQuiz为例。
    本应用由一个activity和一个布局(layout)组成。
    activity是Android SDK中Activity类的一个实例,负责管理用户与应用界面的交互。   应用的功能是通过编写Activity子类来实现的。对于简单的应用来说,一个Activity子类可能就够了,而复杂的应用则会有多个。
    布局定义了一系列用户界面对象以及它们显示在屏幕上的位置。组成布局的定义保存在   XML文件中。每个定义用来创建屏幕上的一个对象,如按钮或文本信息。
    安装和创建Android项目就不必再说了,不是特别复杂,按照步骤一步一步走问题不大。
    下面总结介绍一些基本的操作。
    1. 用户界面设计
    首先打开app/res/layout/activity_quiz.xml文件。比如在本例中形成的代码如下:
  <LinearLayout   xmlns:android =   "https://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:padding="24dp"        android:text="@string/question_text"   />     <LinearLayout        android:layout_width   =   "wrap_content"        android:layout_height   =   "wrap_content"        android:orientation   =   "horizontal">         <Button            android:id="@+id/true_button"            android:layout_width   =   "wrap_content"            android:layout_height   =   "wrap_content"            android:text   = "@string/true_button"   />         <Button            android:id="@+id/false_button"            android:layout_width   =   "wrap_content"            android:layout_height   =   "wrap_content"            android:text   = "@string/false_button"   />     </LinearLayout> </LinearLayout>
    应用activity的默认布局定义了两个组件(widget):RelativeLayout和TextView。   组件是用户界面的构造模块。组件可以显示文字或图像,与用户交互,甚至布置屏幕上的其 他组件。按钮、文本输入控件和选择框等都是组件。 Android   SDK内置了多种组件,通过配置各种组件可获得所需的用户界面及行为。每一个组   件都是View类或其子类(如TextView或Button)的一个具体实例。
    下面介绍一些常用的组件属性。
    (1). android:layout_width和android:layout_height属性
      几乎每类组件都需要android:layout_width和android:layout_height属性。以下是它们的两个常见属性值(二选一)。
    match_parent:视图与其父视图大小相同。
    wrap_content:视图将根据其显示内容自动调整大小。
    TextView组件比其包含的文字内容区域稍大一些,这主要是android:padding="24dp"属性的作用。该属性告诉组件在决定大小时,除内容本身外,还需增加额外指定量的空间。这样屏幕上显示的问题与按钮之间便会留有一定的空间,使整体显得更为美观。
    (2). android:orientation属性
      android:orientation属性是两个LinearLayout组件都具有的属性,它决定两者的子组件是水平放置还是垂直放置。子组件的定义顺序决定其在屏幕上显示的顺序。在垂直的LinearLayout中,第一个定义的子组件出现在屏幕的最上端;而在水平的LinearLayout中,第一个定义的子组件出现在屏幕的最左端。
    (3). android:text属性
      TextView与Button组件具有android:text属性。该属性指定组件要显示的文字内容。android:text属性值不是字符串值,而是对字符串资源(string   resource)的引用。
    字符串资源包含在一个独立的名叫strings的XML文件中(strings.xml),虽然可以硬编码设置 组件的文本属性值,如android:text="True",但这通常不是个好主意。比较好的做法是:将文字内容放置在独立的字符串资源XML文件中,然后引用它们。
      之后创建刚刚说到的字符串资源。每个项目都包含一个默认字符串资源文件strings.xml。在项目工具窗口中,找到app/res/values目录,展开目录,打开strings.xml文件。然后在其中添加字符串资源息。
    2.从布局 XML到视图对象
    activity_quiz.xml中的XML元素转换为视图对象在于QuizActivity   类。在创建GeoQuiz项目的同时,向导也创建了一个名叫QuizActivity的Activity子类。QuizActivity类文件存放在项目的app/java目录下。java目录是项目全部Java源代码的存放处。在项目工具窗口中,依次展开app/java目录与com.bignerdranch.android.geoquiz包。找到并打开QuizActivity.java文件,查看其中的代码。它实际就是一个Activity子类,能为Android旧版本系统提供兼容支持。该Java类文件有一个Activity方法:onCreate(Bundle)。   activity子类的实例创建后,onCreate(Bundle)方法会被调用。activity创建后,它需要获取   并管理用户界面。要获取activity的用户界面,可调用以下Activity方法: public void setContentView(int   layoutResID)   根据传入的布局资源ID参数,该方法生成指定布局的视图并将其放置在屏幕上。布局视图生成后,布局文件包含的组件也随之以各自的属性定义完成实例化。
    资源与资源 ID
    布局是一种资源。资源是应用非代码形式的内容,如图像文件、音频文件以及XML文件等。
      项目的所有资源文件都存放在目录app/res的子目录下。在项目工具窗口中可以看到,activity_quiz.xml布局资源文件存放在res/layout/目录下。strings.xml字符串资源文件存放在   res/values/目录下。
    可以使用资源ID在代码中获取相应的资源。activity_quiz.xml布局的资源ID为R.layout. activity_quiz。
    3.组件的实际应用
      按钮有了资源ID,就可以在QuizActivity中直接获取它们。首先,在QuizActivity.java文件中增加两个按钮成员变量。此时有错误提示:Cannot   resolve symbol 'Button'   。此时需要在QuizActivity.java文件中导入android.widget.Button类包。可在文件 头部手动输入以下代码: import   android.widget.Button; 或者使用Option+Return(Alt+Enter)组合键,让Android   Studio自动导入。
    组件设置好之后便可以进行引用。在activity中,可调用以下Activity方法引用已生成的组件:public View   findViewById(int id) 该方法以组件的资源ID作为参数,返回一个视图对象。
    设置监听器。为响应某个事件而创 建的对象叫作监听器(listener)。监听器会实现特定事件的监听器接口(listener   interface)。无需自己动手,Android   SDK已经为各种事件内置了很多监听器接口。当前应用需要监听用户的按钮“点击”事件,因此监听器需实现View.OnClickListener接口。   (这个地方和之前接触到的iOS的oc语言似乎有一点相似。 )
    附:QuizActivity.jaca代码
    package   com.bignerdranch.android.geoquiz; import   android.support.v7.app.AppCompatActivity;import android.os.Bundle;import   android.view.View;import android.widget.Button;import   android.widget.Toast; public class QuizActivity extends   AppCompatActivity {    private Button   mTrueButton;    private Button   mFalseButton;     @Override                                    //重写函数    protected void onCreate(Bundle   savedInstanceState)   {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_quiz);         mTrueButton   = (Button)   findViewById(R.id.true_button);        mTrueButton.setOnClickListener(new   View.OnClickListener() {      //最外层一对括号内的全部代码就是传入setOnClickListener   (OnClickListener)方法的参数                                           @Override                                           public   void onClick(View   v)                                           {                                               Toast.makeText(QuizActivity.this,                                                       R.string.correct_toast,                                                       Toast.LENGTH_SHORT).show();                                           }        });        mFalseButton   = (Button)   findViewById(R.id.false_button);        mFalseButton.setOnClickListener(new   View.OnClickListener() {    //最外层一对括号内的全部代码就是传入setOnClickListener   (OnClickListener)方法的参数            @Override            public   void onClick(View v)            {                Toast.makeText(QuizActivity.this,                        R.string.incorrect_toast,                        Toast.LENGTH_SHORT).show();            }        });    }}
    这里,一个匿名内部类(anonymous inner class)实现了OnClickListener接口。
    监听器以匿名内部类来实现有两大好处。第一,使用匿名内部类,可以相对集中地实现监听器方法,一眼可见;第二,事件监听器一般只在一个地方使用,使用匿名   内部类,就不用去创建繁琐的命名类了。
    4. 创建提示消息
    分别点击两个按钮,弹出我们称之为toast的提示消息。Android的toast   是用来通知用户的简短弹出消息,用户无需输入什么,也不用做任何干预操作。
    调用Toast类的以下方法,可创建toast:
    public static Toast makeText(Context context, int resId, int   duration)
    该方法的Context参数通常是Activity的一个实例(Activity本身就是Context的子类) 。   第二个参数是toast要显示字符串消息的资源ID。Toast类必须借助Context才能找到并使用字符   串资源ID。第三个参数通常是两个Toast常量中的一个,用来指定toast消息的停留时间。   创建toast后,可调用Toast.show()方法在屏幕上显示toast消息。
    到此为止可以进行应用程序的运行了,但是由于电脑原因模拟器无法运行,所以也就没能看一看最终的成果。
      通过这一个小程序的设计,对Android应用程序有了一个初步的认识,对程序的设计流程和层次设计也加深了了解。并且在做的过程中,由于可视化元素的存在,发现还是挺容易产生兴趣的。    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注移动开发之Android频道!


本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程