Android 学习之《Android编程权威指南》第二版 代码+笔记整理(一)

本篇介绍了GeoQuiz应用的初步开发过程,包括项目搭建、用户界面设计及简单的按钮点击反馈实现。通过XML定义了布局和组件,并在Java代码中设置了按钮的点击事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(代码)GeoQuiz应用初步开发

不展示编译器自动完成的代码,仅提供手动修改或者编写的代码。

一、组成:初步由一个activity和一个layout组成

二、界面:

GeoQuiz界面

三、开发:

1. 新建Android项目:

应用名称为:GeoQuiz
活动名称为:QuizActivity
活动对应布局名称:activity_quiz

2. 用户界面设计:

设计图:
用户界面设计图
代码:(activity_quiz.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical" 
    tools:context="com.example.thinkpad.geoquiz.QuizActivity">
    <!--android:orientation="vertical"垂直布局-->

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="24dp" 
        android:text="@string/question_text" 
        /> 
    <!--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>
    <!--android:orientation="horizontal"水平布局-->
</LinearLayout>

3. activity活动编写(QuizActivity.java):

package com.example.thinkpad.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; //添加两个按钮成员变量,m开头表示menmber成员变量
    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() {
            @Override
            public void onClick(View view) {
                //创建提示消息
                Toast.makeText(QuizActivity.this,R.string.incorrect_toast,Toast.LENGTH_SHORT).show();
            }
        });

        mFalseButton = (Button) findViewById(R.id.false_button);
        mFalseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(QuizActivity.this,R.string.correct_toast,Toast.LENGTH_SHORT).show();
            }
        });
    }
}

4. 创建字符串资源(strings.xml):

<resources>
    <string name="app_name">GeoQuiz</string>
    <string name="question_text">
        Constantinople is the largest city in Turkey.
    </string>
    <string name="true_button">TRUE</string>
    <string name="false_button">FALSE</string>
    <string name="correct_toast">Correct!</string>
    <string name="incorrect_toast">Incorrect!</string>
</resources>

(笔记)第1章 Android开发初体验

1. 组件是用户界面的构造模块,Android SDK 内置了多种组件,每一个组件都是View类或其子类的一个具体实例。
2. 组件属性:
A. android:orientation 决定子组件水平放置(horizontal)或者垂直放置(vertical)
B. 本案例中使用的android:text的属性值不是字符串值,而是对字符串资源(string resources)的引用。字符串资源包含在一个独立的名为strings的XML文件中,虽然可以硬编码设置组件的文本属性,但这通常不是个好主意,更好的做法是:将文字内容放置在独立的字符串资源XML中,然后引用它们。strings.xml在app/res/values中。
3. 布局是一种资源,资源是应用非代码形式的内容。
4. findViewById(R.id.ID名)引用组件
5. 调用来自Toast类的方法,可创建一个toast
public static Toast makeText(Context context,int resId,int duration)
Context参数通常是Activity的一个实例(Activity是Context的子类),resId参数是toast要显示的字符串消息的资源ID,第三个参数duration则是两个Toast常量中的一个(Toast.LENGTH_SHORT && Toast.LENGTH_LONG)用来指定toast消息显示的持续时间。
6. dp 即density-independent pixel 与密度无关像素 单位


来自一名刚刚开始学习Android的小菜鸟~

Android开发权威指南》内容上涵盖了用最新的Android开发的大部分场景 全书分4个部分 分别从Android基础介绍 环境搭建 SDK介绍 到应用剖析 组件介绍 综合实例演示 以及符合潮流的 最新的移动开发技术 如HTML5 OpenGL ES NDK编程 Android测试驱动开发等几个方面讲述 从技术实现上 讲解了6大完整综合案例及源代码分析 分别是新浪微博客户端 蓝牙聊天 全键盘输入法 月球登陆(游戏) 贪吃蛇(游戏) 笑脸连连看(游戏)   《Android开发权威指南》注重对实际动手能力的指导 在遵循技术研发知识体系严密性的同时 在容易产生错误 不易理解的环节上配备了翔实的开发情景截图;并将重要的知识点和开发技巧以“多学招” “扩展学习” “技巧点拨”等的活泼形式呈现给读者 在程序实例的讲解方面 主要将实例安插在Android开发的精髓知识章节 这为读者学习与实践结合提供了很好的指导   《Android开发权威指南》配套光盘包含开发视频及全部源程序 指导读者快速 无障碍地学通Android实战开发技术   《Android开发权威指南》适合具备定软件开发经验 想快速进入Android开发领域的程序员 具备些手机开发经验的开发者和Android开发爱好者学习使用;也适合作为相关培训学校的Android培训教材 目录: 第部分 准备篇 第1章 初识庐山真面目 Android开发简介 第2章 工欲善其事 必先利其器 搭建和使用Android开发环境 第二部分 基础篇 第3章 千里之行始于足下 Android程序设计基础 第4章 我的UI我做主 用户界面开发基础 第5章 良好的学习开端 控件 Widget 详解 第6章 友好的菜单 Menu介绍与实例 第7章 友好地互动交流 信息提醒 对话框 Toast与Notification 第8章 移动的信息仓库 数据存储 第9章 Android中的窗口 Activity 第10章 全局事件 广播 Broadcast 第11章 跨应用数据源 Content Provider 第12章 切为用户服务 Service基础与实例 第13章 做好应用桥梁 网络与通信 第14章 炫酷你的应用 多媒体开发 第15章 D游戏开发 第16章 有趣的Android应用 第三部分 高级篇 第17章 HTML5与移动Web开发 第18章 输入法开发 第19章 Android OpenGL ES开发基础 第20章 OpenGL ES的超酷效果 第21章 Android NDK编程 第22章 测试驱动开发 TDD 第四部分 综合实例篇 第23章 Android综合案例 蓝牙聊天 第24章 Android综合案例二 月球登陆 游戏 第25章 Android综合案例三 全键盘输入法 应用 第26章 Android综合案例四 贪吃蛇 游戏 第27章 Android综合案例五 新浪微博客户端 应用 第28章 Android综合案例六 笑脸连连看 游戏 ">《Android开发权威指南》内容上涵盖了用最新的Android开发的大部分场景 全书分4个部分 分别从Android基础介绍 环境搭建 SDK介绍 到应用剖析 组件介绍 综合实例演示 以及符合潮流的 最新的移动开发技术 如HTML5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值