前言

[Android系列—] 2. Android 项目目录结构与用户界面的创建

在上一篇中,在一个活动中(activity)中显示了一个输入框和一个按钮。这一篇讲接着上一篇继续介绍如何在点击 Send 按钮时,通过添加一些代码到MainActivity中开始一个新的Activity.

添加Send 按钮的响应

添加按钮的点击事件响应,打开 fragment_main.xml

在Button 中添加 android:onClick 属性:

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

sendMessage 是activity 中的方法,当点击按钮时触发。

打开src 包目录中的 MainActivity.java  , 添加以下方法:

/** Called when the user clicks the Send button */
public void sendMessage(View view) {// Do something in response to button
}

这个方法的要求是:

1, public

2,  void return

3, 有一个View 的参数

接下来,逐步完善方法的内容。

构建一个意图(Intent)

Intent 是提供两个独立组件(比如两个activities)运行时绑定的对象。  Intent 代表了应用程序 ”意图做某事“。它可以做很多的事情,但是开始另外一个活动是最常见的用法。

在 sendMessage() 方法中, 创建一个Intent 呼叫 DisplayMessageActivity

Intent intent = new Intent(this, DisplayMessageActivity.class);

使用Intent 之前,需要先导入:

import android.content.Intent;

第一个参数是Context (Activity 是Context 的子类)

在方法体中,可以使用findViewById() 找到定义的EditText ,并取得输入的值传给Intent

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);

Intent 可以使用putExra 方法以键值的方法传递数据。

EXTRA_MESSAGE 是定义的静态变量

public class MainActivity extends ActionBarActivity {public final static String EXTRA_MESSAGE = "com.oscar999.myfirstapp.MESSAGE";...
}

启动第二个活动

调用startActivity(),传入Intent 来启动一个activity.

到此为止,  sendMessage 完整代码如下:

/** Called when the user clicks the Send button */
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);
}

但是, DisplayMessageActivity 这个类还没有定义。

接下来就定义这个类

1 . 点击 New 的图标--》  android --> android Activity 点击下一步

2. 选择BlankActivity后 下一步

3.  输入相关信息,点完成

创建完成之后, 打开这个文件。

1.  继承了 onCreate() 方法, 这个方法是必须的。

2.  onCreateOptionsMenu(),这个方法也是继承来的,不过不需要可以删除

3. onOptionsItemSelected(),   同样是继承的,处理动作条的向上行为。

4. PlaceholderFragment,扩展 Fragment 类的类。

Fragments 把应用程序功能分解成可重用的模组。

修改 onCreate 的方法, 修改后如下:

@Override
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// Get the message from the intentIntent intent = getIntent();String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);// Create the text viewTextView textView = new TextView(this);textView.setTextSize(40);textView.setText(message);// Set the text view as the activity layoutsetContentView(textView);
}

setContentView 用来设置活动的布局。

除了.java 文件之外, 来看看其他文件还有什么改变的

1. String.xml

2. AndroidManifest.xml

3.  layout 目录下多出了 activity_display_message.xml

看一下最终实现的效果

[Android系列—] 3. 启动另外的活动(Activity)相关推荐

  1. android如何在底部显示四个按钮,[Android系列—] 四. 添加操作栏(Action Bar)

    [Android系列-] 4. 添加操作栏(Action Bar) 前言 操作栏是最重要的设计元素之一,使用它来实现你的应用程序活动.通过提供多种用户界面功能, 使应用程序快速和其他的Andorid应 ...

  2. Android手机app启动的时候第一个Activity必须是MainActivity吗

    Android手机APP启动的第一个Activity是可以自己设置的,不是必须的MainActivity,可以是任何的Activity. 设置Android手机APP启动的第一个Activity得看A ...

  3. Android性能优化系列:启动优化

    文章目录 1 应用启动类型 1.1 冷启动 1.2 温启动 1.3 热启动 2 查看启动耗时 2.1 adb命令查看 2.2 Logcat Displayed查看启动耗时 2.3 手动记录启动耗时 2 ...

  4. 【Android 启动过程】Activity 启动源码分析 ( Activity -> AMS、主线程阶段 )

    文章目录 一.Activity 启动源码分析 ( Activity -> AMS 阶段 ) 一.Activity 启动源码分析 ( Activity -> AMS 阶段 ) 调用 star ...

  5. Android中活动Activity方面的知识点

    1.创建activity 2.配置AndroidManifest.xml文件 <application.. <activity android:name=".NewActivit ...

  6. Android 面试必备 - 系统、App、Activity 启动过程

    前言 最近准备更新 Android 面试必备基础知识系列,有兴趣的可以关注我的微信公众号 stormjun94,有更新时,第一时间会在微信公众号上面发布,同时,也会同步在 GitHub 上面更新,如果 ...

  7. Android系列之Activity的传值和回传值

    Android系列之Activity的传值和回传值 Android 组件系列之Activity的传值和回传值 在这篇随笔里将讲解Activity的传值和回传值. 一.通过startActivity来进 ...

  8. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第四章:活动Activity

    第 4 章 活动Activity 本章介绍Android 4大组件之一Activity的基本概念和常见用法.主要包括如何正确地启动和停止活动页 面.如何在两个活动之间传递各类消息.如何在意图之外给活动 ...

  9. 从0到1学android:四大组件—活动Activity

    点击上方"罗晓胜",马上关注,您的支持对我帮助很大 上期文章 从0到1学android:认识Android 逻辑题--特尔斐城的少女 /   前言   / 活动(Activity) ...

最新文章

  1. 刚从阿里、头条面试回来,尚硅谷java数据结构与算法百度云
  2. TCP/IP总结(4)TCP 之3次握手
  3. Round-Robin负载均衡算法及其实现原理
  4. SQL:REGEXP
  5. Java中九大内置对象
  6. 201403-5 任务调度
  7. Leetcode:search_insert_position
  8. oracle slient静默安装并配置数据库及仅安装数据库不配置数据库shell
  9. 信息学奥赛一本通 1924:【03NOIP普及组】栈 | 洛谷 P1044 [NOIP2003 普及组] 栈
  10. 分布式事务模型--基于消息的分布式事务
  11. 通过读取配置文件,启动mongodb
  12. BZOJ 1639: [Usaco2007 Mar]Monthly Expense 月度开支( 二分答案 )
  13. Delphi BLE 控件
  14. java基础知识整理(精简)
  15. 自学鄙视链顶端的王者
  16. Linux中级之ansible概念及hoc命令行调用模式
  17. SSD1306驱动理解
  18. 计算机主机的三大部分,计算机系统的三大组成部分
  19. Spring AOP配置 之 @Aspect
  20. Intel处理器将被苹果M1处理器降维式打击

热门文章

  1. 【ADO.NET基础】加密方法公共类
  2. [翻译] GiFHUD
  3. android Intent的介绍
  4. Hyper-V虚拟机Redhat添加网卡找不到网卡配置文件解决方法
  5. ios cannot use “@throw“ with objective-c exceptions disabled 问题解决方案
  6. sql 2000 无法连接远程数据库 sqlserver不存在或访问被拒绝、不能打开到主机的连接,在端口1433:连接失败等 解决方案
  7. WPF引用外部类库中的资源文件提示不能找到的解决方法
  8. leetcode力扣36.有效的数独
  9. 初学opengl的一些知识整理-1
  10. 如何将知识图谱引入推荐系统?