• AndroidStudio学习笔记-第一个安卓程序


    要带一个本科生做一部分跟安卓有点关系的项目,于是趁着机会学习一下编写安卓程序。

    第一篇材料来自谷歌官方,传送门:https://developer.android.com/training/basics/firstapp/index.html。由于官方例程写的很清楚了,基本上只要按着步骤就好了,所以不打算完全的复制粘贴,主要实践过程中我的一些理解和思考。

    1. 创建新工程

    一个安卓程序的层次结构为 Application -> many activities (可以理解为很多个界面) -> layout + title + menu

    新建工程后AS会自动生成许多文件,重要的文件包括:

      1. app/src/main/res/layout/activity_my.xml 格式为XML的layout文件。AS支持直接通过text来修改显示界面,同时也提供了GUI,可以直接拖拽完成界面编辑。

      2. app/src/main/res/layout/content_my.xml 该文件被activity_my.xml调用。对layout的具体描述以及一些设置等。

      3. app/src/main/java/com.mycompany.myfirstapp/MyActivity.java jave核心代码,包括实际的activity的类及其类函数。当app运行时,该activity类运行并调用前述layout文件显示出来。

      4. app/src/main/AndroidManifest.xml app的基础特性的配置及包括哪些组成部分(activity)

      5. app/build.gradle gradle脚本用来编译和构建app,方便处理版本及依赖库等问题。

      6. app/src/main/res/ 改目录下包括app中所用到的所有资源:

        drawable-<density>/ 包括所有图片资源,除了启动图标

        layout 包括每个activity的layout文件

        menu 包括activity的menu文件

        mipmap 包括启动图标

        values 其他的xml文件,包括string和color的定义等。

    2. 运行程序

    程序既可以在具体的安卓设备上运行,也可以在模拟器上运行。

    在具体的安卓设备调试之前,需要安装好设备的相关驱动,编译程序的时候要选择符合的版本号,不用怎么麻烦就可以运行hello world了!

    3. 创建简单的用户界面

    安卓app的图形界面的层次结构为 ViewGroup -> View. ViewGroup是不可见的容器,定义了其子view如何布局,布局是ViewGroup的子类。View对象是普通的UI部件。

      1. 新建一个linear layout

      2. 增加Text域和button

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

        View的ID用来读取和操作对应的View对象

        View的hint为输入Text为空的时候的提示语句

      3. 增加String资源

        在res/values/strings.xml中增加名为edit_message和button_send的string

      4. 让输入框充满屏幕 

    给UI部件增加响应函数  

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

    增加onClick响应,sendMessage为该activity的类函数

    在MyActivity.javaMyActivity类中增加对应类函数,该类函数需要是Public的,Void的返回值以及只有View一个参数

    在类函数中创建一个Intent用来打开新的activity

    public void sendMessage(View view) {
      Intent intent = new Intent(this, DisplayMessageActivity.class);
      EditText editText = (EditText) findViewById(R.id.edit_message);
      String message = editText.getText().toString();
      intent.putExtra(EXTRA_MESSAGE, message);
     startActivity(intent); }

      intent能够携带类型为字典的变量extras,通过调用putExtra能够给字典赋值

    在MyActivity中补充定义Extra_MESSAGE

    public class MyActivity extends AppCompatActivity {
        public final static String EXTRA_MESSAGE = "com.mycompany.myfirstapp.MESSAGE";
        ...
    }

    4.创建另外一个Activity

      使用 AS创建另外一个blank Activity,编辑其java核心代码

      接收intent

        Intent intent = getIntent();

        String message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE);

      在Activity中创建新的textView    

        TextView textView = new TextView(this);

        textView.setTextSize(40);

        textView.setText(message);

      在Activity中在布局中添加textView

        RelativeLayout layout = (RelativeLayout) findViewById(R.id.content);

        layout.addView(textView);

    恭喜,完成基本的教程!

  • 相关阅读:
    JAVA中获取当前系统时间
    struts2文件下载及 <param name="inputName">inputStream</param>的理解
    struts2文件下载,动态设置资源地址
    IE8上传文件时文件本地路径变成"C:fakepath"的问题
    Java设置session超时(失效)的三种方式
    学一点Git--20分钟git快速上手
    关于服务器响应,浏览器请求的理解以及javaWeb项目的编码问题
    GBK、GB2312、iso-8859-1之间的区别
    mysql的多表查询
    mysql错误:“ Every derived table must have its own alias”(每个派生出来的表都必须有一个自己的别名)
  • 原文地址:https://www.cnblogs.com/worthy/p/5351806.html
Copyright © 2020-2023  润新知