前情提要(Previously)

本系列将使用 Android Studio 将《第一行代码》(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android Studio 作为开发 IDE 的同学开路。

PS:其实我就是现学现卖,希望我能坚持刷完。

在 Day 1、Day 2,我们创建了第一个App project,并分析了项目结构、运行原理,实践了 LogCat 的使用。

系列目录在此:

摘要(Abstract)

Activity 是 一个 App 的脸面,而这又是一个看脸的世界,那就让我们从脸开始吧。这篇都是基础的罗列,没有什么值得注意的地方。

Activity 的基本用法

跟着书走,先创建一个 ActivityTest 的项目,注意在选择 Activity 的时候,选择 Add No Activity。如下图

创建活动

在 app/src/mani/java/com.xxx.ActivityTest 目录上点击右键 → New,这里有两种选择:

  • 选择 Java Class,新建一个名为 FirstActivity 的类,并 extends Activity,重写 onCreate() 方法。代码可以参考之前的 HelloWorld。
  • 选择 Activity,系统会生成一个 Activity,以及相关的布局文件 Layout,并在 AndroidManifest.xml 中注册。

如下图

创建和加载布局

新创建好的项目是没有 Layout 目录的,在 app/src/main/res 目录上点右键 → New → Android resource directory,在弹出的对话框中将 Resource type 选为 layout。

然后在 res/Layout 目录上点右键 → New → Layout resource file,在弹出的对话框中填上名字,Finish,这样就创建好了。

打开文件,可以向里面添加一个 Button 控件试试看。

注册

Activity 必须在 AndroidManifest.xml 文件中注册才可以使用,代码如下:

    <activity
android:name=".FirstActivity"
android:label="FirstActivity" >
</activity>

如果想让其在 App 运行时打开,还需要添加 intent-filter,代码如下:

        <intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

隐藏标题栏

在 Activity 的 onCreate()方法中添加 requestWindowFeature(Window.FEATURE_NO_TITLE);

PS:在这里我遇到个坑,我创建的继承 Activity 的 活动默认就不显示标题栏,而且我也不知道怎么能让标题栏显示出来。

消息提示 Toast

Toast 是 Android 提供的一种非常好的提醒方式,在程序中可以使用她将一些短小的信息通知给用户,这些信息会在一段时间后自动消失。

例子是这样的,在 onCreate() 方法中,给 Button 绑定一个点击事件,再点击 Button 时显示一条信息,代码如下:

    Button button1 = (Button) findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FirstActivity.this, "you clicked button 1", Toast.LENGTH_SHORT).show();
}
});

PS:我多么希望 HTML 中也有这样的元素啊。

Menu

我真心觉得 Menu 没什么好讲的。

Activity 跳转

创建一个名为 SecondActivity 的 Activity(好绕口)。

例子是这样的,在 FirstActivity 中点击 Button 后跳转到 SecondActivity。代码如下:

    button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
}
});

传递数据

例子是这样的,在 FirstActivity 中点击 Button 后跳转到 SecondActivity,并将一个字符串传过去。

1.FirstActivity 中发送代码如下:

    Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
String data = "hello second";
intent.putExtra("extra_data", data);
startActivity(intent);

2.SecondActivity中,在 onCreate() 方法中,接收代码如下:

    Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");

返回数据

需要用 startActivityForResult() 来代替 startActivity() 方法。

例子是这样的,在 FirstActivity 中点击 Button 后跳转到 SecondActivity,然后点击返回键返回到 FirstActivity,并返回一个字符串。

1.FirstActivity 中发送代码如下:

    startActivityForResult(intent, 1);

其中的第二个参数 requestCode,用于在之后的回调方法中判断数据的来源。要保证在当前 Activity 中的唯一性。

2.SecondActivity中,重写点击返回键时触发的 onBackPressed() 方法,代码如下:

@Override
public void onBackPressed(){
Intent intent = new Intent();
intent.putExtra("data_return","hello first");
setResult(RESULT_OK, intent);
finish();
}

3.当从 SecondActivity 返回时,会回调上一个活动的 onActivityResult() 方法,所以需要重写 FirstActivity 的 onActivityResult() 方法来获取返回的数据,代码如下:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String returnedData = data.getStringExtra("data_return");
Log.d("FirstActivity", returnedData);
}
break;
default:
}
}

其它(Miscellaneous)

尽管我试图在本文中尽量完整的进行描述,但受限于篇幅和我的个人水平,本文难免有所遗漏,欢迎在评论中指出。

如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!

关于作者(About Me)

addict

原文链接:http://www.cnblogs.com/DebugLife/p/4349428.html

本文谢绝转载,如需转载需征得作者本人同意,谢谢。

Android Studio 单刷《第一行代码》系列 03 —— Activity 基础的更多相关文章

  1. android第一行代码-3.activity之间的调用跟数据传递

    前面两节所有应用都是同一个activity中的,是时候讲activity之间交互的操作了,此后会涉及到intent这个概念,这也算一个新的里程碑开始. 主要内容包括intent的使用,以及activi ...

  2. android第一行代码-2.activity基本用法

    摘要: 本节主要涉及到的有activity的创建,标题栏隐藏,button绑定方法(toast的使用),menu使用,活动销毁 1.activity的创建跟注册 创建: public class Te ...

  3. Android Studio 单刷《第一行代码》系列目录

    前言(Prologue) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...

  4. Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

  5. Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWorld

    前言(Prologue) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...

  6. Android Studio 单刷《第一行代码》系列 07 —— Broadcast 广播

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

  7. Android Studio 单刷《第一行代码》系列 06 —— Fragment 生命周期

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

  8. Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

  9. Android Studio 单刷《第一行代码》系列 04 —— Activity 相关

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

随机推荐

  1. (转)TCP三次握手

    原文地址:http://www.cnblogs.com/rootq/articles/1377355.html TCP(Transmission Control Protocol) 传输控制协议 TC ...

  2. input两种默认显示文字方式

    First Note: placeholder属性 规定帮助用户填写输入字段的提示,值不会被提交, 且该提示会在输入字段为空时显示,并会在字段获得焦点时消失. 如 <input type=&qu ...

  3. pre 随变化的样式

    <pre style="white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-sp ...

  4. Apache Commons 简述

    Apache Commons 是一个关注于可复用的 Java 组件的 Apache 项目.Apache Commons 由三部分构成: Commons Proper - 一个可复用的 Java 组件库 ...

  5. JIRA的常用选项

    常用的一些选项有: 问题类型  Bug 测试过程维护过程发现影响系统运行的缺陷   New Feature 对系统提出的新功能  Task 需要完成的任务  Improvement 对现有系统功能的改 ...

  6. jQuery中ajax应用

    一:Ajax介绍 1.ajax的定义:客服端js所发起的http请求的代号,无刷新的数据更新. 2.ajax原理: 运用XHTML+CSS来表达信息,运用javascript操作DOM(Documen ...

  7. Spring boot 1.3.5 RELEASE 官方文档中文翻译--目录

    说明: 打算利用闲暇时候翻译一下Spring boot的官方文档,翻译的版本是1.3.5 RELEASE. 做这件事的目的呢有四: 国内中文的Spring boot资料实在不多,希望能给后来人一点小小 ...

  8. NOIP2011(提高组)DAY2---观光公交(vijosP1741)

    描述 风景迷人的小城Y市,拥有n个美丽的景点.由于慕名而来的游客越来越多,Y市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第0分钟出现在1号景点,随后依次前往2.3.4……n号景 ...

  9. Java调用外部程序常用算法和封装类

    一个项目不可能只使用一种编程语言来开发,也不可能由一个人开发,所以,Java程序员要学会和使用其他编程语言的程序员合作.那么,让我来发布一个工具类--Java外接程序扩展包,并将相应算法发布.Java ...

  10. 一种简单的权限管理ER图设计

    权限管理支持动态地管理用户的角色和权限.权限代表用户可以在什么对象上进行什么操作:角色是一组权限的集合. PS:当增加或删除某个用户的角色时,系统自动将该角色对应的权限(角色 -权限关联表)增加或删除 ...