- 浏览: 114751 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
eyeandroid_com:
貌似掉线 写道其实ImageView, ImageButton ...
【Android每日一讲】2012.11.12 设计具有背景图的按钮 - ImageButton的焦点及事件处理 -
貌似掉线:
其实ImageView, ImageButton, Butto ...
【Android每日一讲】2012.11.12 设计具有背景图的按钮 - ImageButton的焦点及事件处理 -
lhw0531:
有推广嫌疑
【史上最全的】Android应用源码免费下载 -
tenderuser:
L_sharp 写道no pic u c a xx没有图片,你 ...
自定义ViewGroup实现ViewPager的滑动效果(附源码下载) -
L_sharp:
no pic u c a xx
自定义ViewGroup实现ViewPager的滑动效果(附源码下载)
1.主要内容
本小结在1.3节的基础上,继续完善代码,会书写Button响应事件,在响应事件中新建一个Intent去启动另外一个Activity。
2.视频讲解
http://www.eyeandroid.com/thread-11210-1-1.html
3.翻译参考
Respond to the Send Button-响应Send(发送)按钮
响应按钮的on-click(点击)事件,打开main.xml布局文件然后在Button(按钮)元素中添加android:onclick属性:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage" />
android:onclick属性的值:sendMessage就是当用户点击你屏幕按钮时触发方法的名字。
添加相应的方法在MyFirstActivity类中:
/** 当用户点击Send按钮时调用 */
public void sendMessage(View view) {
// 做一些相应按钮的操作
}
注意:在Eclipse中,按Ctrl + Shift + O 可以导入缺失的类(在Mac中使用Cmd + Shift + O )
请注意,为了让系统能够将这个方法(你刚在MyFirstActivity中添加的sendMessage方法)与在android:onClick属性中提供的方法名字匹配,它们的名字必须一致,特别是,这个方法必须满足以下条件:
公共的
没有返回值
有一个唯一的视图(View)参数(这个视图就是将被点击的视图)
接下来,你可以在这个方法中编写读取文本内容的代码,并将该内容传到另一个Activity
Build an Intent-构建一个Intent(意图)
Intent(意图)是在不同组件中提供运行时连接的对象(比如两个Activity)。Intent(意图)代表一个应用"想去做什么事",你可以用它做各种各样的任务,不过大部分的时候他们被用来启动另一个Activity。在sendMessage()方法中创建一个Intent(意图)并启动名为DisplayMessageActivity的Activity:
Intent intent = new Intent(this, DisplayMessageActivity.class);
在这个Intent构造函数中有两个参数: 第一个参数是Context(上下文)(之所有可以用this是因为当前Activity(MyFirstActivity)是Context的子类) 系统需要传递Intent的应用组件的class对象(在这个案例中,这个activity应该被启动)
注意:如果你正在使用的是类似Eclipse的IDE,这里对DisplayMessageActivity的引用会报错,因为这个类还不存在;注意这个错误,你很快就要去创建这个类了。
一个Intent(意图)不仅允许你启动另一个Activity,同时也可以传递一个数据包到另一个Activity,ok,用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);
Sending an intent to other apps-发送intent(意图)到其他app(应用)
在这课中创建的Intent(意图)包含了一个非常明确的意图,因为它指定了一个Intent需要的精确app(应用)组件; 然而,在Intent没有指定明确的组件时,Intent(意图)是隐式的,但它允许安装在设备上的任何应用来回应, 只要这个应用满足在各个Intent(意图)参数中指定的action(行动)的元数据规范,想了解更多信息, 可以去看Interacting with Other Apps课程
Intent(意图)可以传递各种各样的以键值对形式出现的集合,可以称它为extras,putExtra()方法用字符窜作为它的key,第二个参数作为它的值为了在下一个Activity中获取extra(附加的)数据,你应该定义一个公共常量作为key(键),ok,在MyFirstActivity类的顶部定义一个名为EXTRA_MESSAGE的常量:
public class MyFirstActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.example.myapp.MESSAGE";
...
}
为使extras键唯一,使用你应用的包名作为extras键的前缀是一个很好的做法,因为你的应用可能需要跟其他应用交互。
Start the Second Activity-启动第二个Activity
启动一个Activity,你只需要调用startActivity()方法然后传入你的Intent(意图)系统接收到你的请求后会实例化在Intent中指定的Activity,包含这个方法拥有的,被Send(发送)按钮调用的完整sendMessage()方法现在就像这样:
/** 当用户点击Send按钮时调用 */
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支持程序能够执行起来
Create the Second Activity-创建第二个Activity
在你的项目中,在src/<package-name>/路径下新建一个名为DisplayMessageActivity.java的类。
注:在Eclipse中,在src/路径下点鼠标右键选中New > Class,输入DisplayMessageActivity,并且指定继承android.app.Activity 。
在这个类中,添加onCreate()回调方法:
public class DisplayMessageActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
所有Activity的子类都必须实现onCreate()方法,当系统创建Activity实例时就会调用该方法,这个方法是你必须定义activity布局以及初始化必要activity组件的地方。
Add it to the manifest-将Activity加入manifest(清单)文件
你必须在manifest(清单)文件,AndroidManifest.xml中使用<activity>元素声明你所有的Activity;因为DisplayMessageActivity是由一个明确的Intent(意图)调用的,所以它不需要任何intent filters(意图过滤器)(intent filters,你可以在manifest文件中声明MyFirstActivity的地方看到)如此DisplayMessageActivity就可以在<application>元素中用一句很简单的代码声明;
<application ... >
<activity android:name="com.example.myapp.DisplayMessageActivity" />
...
</application>
这个app(应用)现在就可以运行了,因为第一个Activity中的Intent现在可以解析DisplayMessageActivity类了,如果你现在运行app,点击Send(发送)按钮启动,第二个Activity,它不会显示任何东西;
Receive the Intent-获取Intent(意图)
每一个被Intent调用的Activity,不管用户将它导航到哪,你都可以在启动的Activity中通过getIntent()方法得到Intent以及Intent包含的数据。在DisplayMessageActivity类的onCreate()方法中,得到intent以及MyFirstActivity提供的附加信息:
Intent intent = getIntent();
String message = intent.getStringExtra(MyFirstActivity.EXTRA_MESSAGE);
Display the Message-显示信息
在屏幕上显示信息,创建一个TextView部件,并且使用setText()设置它的值,然后通过setContentView()方法将TextView作为root(根)视图添加到Activity的布局。
DisplayMessageActivity完整的onCreate()方法现在看起来如下:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 从intent中获取信息
Intent intent = getIntent();
String message = intent.getStringExtra(MyFirstActivity.EXTRA_MESSAGE);
// 创建TextView对象
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
setContentView(textView);
}
现在你可以运行app,在文本中输入信息,点击Send(发送)按钮,ok,现在就可以在第二Activity上看到信息了。
本小结在1.3节的基础上,继续完善代码,会书写Button响应事件,在响应事件中新建一个Intent去启动另外一个Activity。
2.视频讲解
http://www.eyeandroid.com/thread-11210-1-1.html
3.翻译参考
Respond to the Send Button-响应Send(发送)按钮
响应按钮的on-click(点击)事件,打开main.xml布局文件然后在Button(按钮)元素中添加android:onclick属性:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage" />
android:onclick属性的值:sendMessage就是当用户点击你屏幕按钮时触发方法的名字。
添加相应的方法在MyFirstActivity类中:
/** 当用户点击Send按钮时调用 */
public void sendMessage(View view) {
// 做一些相应按钮的操作
}
注意:在Eclipse中,按Ctrl + Shift + O 可以导入缺失的类(在Mac中使用Cmd + Shift + O )
请注意,为了让系统能够将这个方法(你刚在MyFirstActivity中添加的sendMessage方法)与在android:onClick属性中提供的方法名字匹配,它们的名字必须一致,特别是,这个方法必须满足以下条件:
公共的
没有返回值
有一个唯一的视图(View)参数(这个视图就是将被点击的视图)
接下来,你可以在这个方法中编写读取文本内容的代码,并将该内容传到另一个Activity
Build an Intent-构建一个Intent(意图)
Intent(意图)是在不同组件中提供运行时连接的对象(比如两个Activity)。Intent(意图)代表一个应用"想去做什么事",你可以用它做各种各样的任务,不过大部分的时候他们被用来启动另一个Activity。在sendMessage()方法中创建一个Intent(意图)并启动名为DisplayMessageActivity的Activity:
Intent intent = new Intent(this, DisplayMessageActivity.class);
在这个Intent构造函数中有两个参数: 第一个参数是Context(上下文)(之所有可以用this是因为当前Activity(MyFirstActivity)是Context的子类) 系统需要传递Intent的应用组件的class对象(在这个案例中,这个activity应该被启动)
注意:如果你正在使用的是类似Eclipse的IDE,这里对DisplayMessageActivity的引用会报错,因为这个类还不存在;注意这个错误,你很快就要去创建这个类了。
一个Intent(意图)不仅允许你启动另一个Activity,同时也可以传递一个数据包到另一个Activity,ok,用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);
Sending an intent to other apps-发送intent(意图)到其他app(应用)
在这课中创建的Intent(意图)包含了一个非常明确的意图,因为它指定了一个Intent需要的精确app(应用)组件; 然而,在Intent没有指定明确的组件时,Intent(意图)是隐式的,但它允许安装在设备上的任何应用来回应, 只要这个应用满足在各个Intent(意图)参数中指定的action(行动)的元数据规范,想了解更多信息, 可以去看Interacting with Other Apps课程
Intent(意图)可以传递各种各样的以键值对形式出现的集合,可以称它为extras,putExtra()方法用字符窜作为它的key,第二个参数作为它的值为了在下一个Activity中获取extra(附加的)数据,你应该定义一个公共常量作为key(键),ok,在MyFirstActivity类的顶部定义一个名为EXTRA_MESSAGE的常量:
public class MyFirstActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.example.myapp.MESSAGE";
...
}
为使extras键唯一,使用你应用的包名作为extras键的前缀是一个很好的做法,因为你的应用可能需要跟其他应用交互。
Start the Second Activity-启动第二个Activity
启动一个Activity,你只需要调用startActivity()方法然后传入你的Intent(意图)系统接收到你的请求后会实例化在Intent中指定的Activity,包含这个方法拥有的,被Send(发送)按钮调用的完整sendMessage()方法现在就像这样:
/** 当用户点击Send按钮时调用 */
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支持程序能够执行起来
Create the Second Activity-创建第二个Activity
在你的项目中,在src/<package-name>/路径下新建一个名为DisplayMessageActivity.java的类。
注:在Eclipse中,在src/路径下点鼠标右键选中New > Class,输入DisplayMessageActivity,并且指定继承android.app.Activity 。
在这个类中,添加onCreate()回调方法:
public class DisplayMessageActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
所有Activity的子类都必须实现onCreate()方法,当系统创建Activity实例时就会调用该方法,这个方法是你必须定义activity布局以及初始化必要activity组件的地方。
Add it to the manifest-将Activity加入manifest(清单)文件
你必须在manifest(清单)文件,AndroidManifest.xml中使用<activity>元素声明你所有的Activity;因为DisplayMessageActivity是由一个明确的Intent(意图)调用的,所以它不需要任何intent filters(意图过滤器)(intent filters,你可以在manifest文件中声明MyFirstActivity的地方看到)如此DisplayMessageActivity就可以在<application>元素中用一句很简单的代码声明;
<application ... >
<activity android:name="com.example.myapp.DisplayMessageActivity" />
...
</application>
这个app(应用)现在就可以运行了,因为第一个Activity中的Intent现在可以解析DisplayMessageActivity类了,如果你现在运行app,点击Send(发送)按钮启动,第二个Activity,它不会显示任何东西;
Receive the Intent-获取Intent(意图)
每一个被Intent调用的Activity,不管用户将它导航到哪,你都可以在启动的Activity中通过getIntent()方法得到Intent以及Intent包含的数据。在DisplayMessageActivity类的onCreate()方法中,得到intent以及MyFirstActivity提供的附加信息:
Intent intent = getIntent();
String message = intent.getStringExtra(MyFirstActivity.EXTRA_MESSAGE);
Display the Message-显示信息
在屏幕上显示信息,创建一个TextView部件,并且使用setText()设置它的值,然后通过setContentView()方法将TextView作为root(根)视图添加到Activity的布局。
DisplayMessageActivity完整的onCreate()方法现在看起来如下:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 从intent中获取信息
Intent intent = getIntent();
String message = intent.getStringExtra(MyFirstActivity.EXTRA_MESSAGE);
// 创建TextView对象
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
setContentView(textView);
}
现在你可以运行app,在文本中输入信息,点击Send(发送)按钮,ok,现在就可以在第二Activity上看到信息了。
发表评论
-
[Android Training视频系列] 8.3 Dealing with Audio Output Hardware
2013-07-19 21:29 755用户在播放音乐的时候 ... -
[Android Training视频系列] 8.2 Managing Audio Focus
2013-07-19 00:20 1158视频讲解:http://www.eyeandroid.com/ ... -
[Android Training视频系列] 8.1 Controlling Your App’s Volume and Playback
2013-07-17 22:26 846主要内容: 1 鉴别使用 ... -
[Android教程]通过Intent分享数据内容给其他应用程序
2013-05-16 07:57 696一:主要内容 本文档首先介绍如何通过发送Intent来分享数据 ... -
[Android Training视频系列] 6.3 Saving Data in SQL Databases(保存数据到SQLite)
2013-05-06 07:54 796一 主要内容 1.概述 2.定义Schema与Contract ... -
[Android Training视频系列] 6.2 Saving Files(保存文件)
2013-02-19 00:11 745一:主要内容 1.概述 2.选择内部存储还是外部存储 3.获取 ... -
【Android您问我讲】Android 2.x中使用actionbar - Actionbarsherlock的使用
2013-01-06 11:34 16991. 范例说明 从Android 3.0开始,Android引 ... -
【Android您问我讲】带左右滑动的选项卡 - ViewPager与Tabhost的结合使用
2013-01-02 00:34 22801. 范例说明 ViewPager实现滑动切换的效果,但是切换 ... -
【Android您问我讲】如何使用选显卡 - Tabhost的使用
2012-12-23 00:40 10971. 范例说明 TabHost是Android系统中提供的一 ... -
[Android Training视频系列]6.1 Saving Key-Value Sets
2012-12-22 10:35 8111.主要内容 本小节介绍S ... -
[Android Training视频系列]2.4 Recreating an Activity
2012-12-18 00:34 9261.主要内容 本讲讲解onSaveInstanceState与 ... -
【Android您问我讲】超炫的左右滑动效果 - ViewPager的使用
2012-12-16 20:45 10421. 范例说明 •android-support-v4.jar ... -
[Android Training视频系列]2.3 Stopping and Restarting an Activity
2012-12-16 13:14 9561.主要内容 本小节介绍onStop与onRestart以及 ... -
[Android Training视频系列]2.2 Pausing and Resuming an Activity
2012-12-14 00:58 10581.主要内容 本讲介绍onPause和onResume,主要分 ... -
[Android Training视频系列]2.1 Starting an Activity
2012-12-13 00:07 9001.主要内容 本小节首先对Activity的各个生命周期作简 ... -
[Android Samples视频系列之ApiDemos] App-Activity-TranslucentBlur和Wallpaper
2012-12-09 23:56 7671.Demo说明与演示 TranslucentBulr :这个 ... -
[Android Samples视频系列之ApiDemos] App-Activity-Translucent
2012-12-05 00:12 8851.Demo说明与演示 该Demo显示一个半透明Activit ... -
[Android Samples视频系列之ApiDemos] App-Activity-SetWallpaper
2012-12-03 00:12 9761.Demo说明与演示 该Demo介绍如何在Android获取 ... -
【Android每日一讲】2012.11.29 自定义下拉菜单模式 - Spinner与setDropDownViewResource
2012-12-01 13:19 11541. 范例说明 Spinner就是下拉菜单,由于手机画面有限, ... -
【Android每日一讲】2012.11.28 快速地搜索手机文件引擎 - Java IO的应用
2012-11-28 00:25 10381. 范例说明 大家都应该用过操作系统的文件搜索功能吧!它可以 ...
相关推荐
在Android开发领域,Android Training是一系列官方提供的教程和实践课程,旨在帮助开发者提升技能,创建高质量的Android应用程序。这些教程涵盖了从基础到高级的各种主题,包括用户界面设计、性能优化、网络通信、...
Android training docs
4. Android 开发系列书籍:文档中提到的Doc系列,是为了帮助开发者从Android应用的初始概念阶段到最后的产品交付进行指导。该系列书籍的命名基于官方文档的不同领域,为开发者提供了一个单一的参考资料点。这表明在...
Android Studio Essential Training视频教程,Part1/3。
Android Training是Google提供的一系列教程,旨在帮助开发者提升Android开发技能。这篇文章是Android Training的一部分,专门讲解了如何结合Navigation和ListView实现高效的用户导航。 4. **源码分析** 文章提供...
Android Studio Essential Training视频教程,Part3/3。
在Android开发领域,Android Training是谷歌提供的一系列官方教程,旨在帮助开发者提升技能,了解最佳实践,并掌握构建高质量Android应用的技巧。这个压缩包文件包含了Android Training官方课程中的示例源代码,对于...
这篇文章是基于“Android Training”系列的学习笔记,主要探讨了App Bar的设计原理和参考源码分析。下面将详细阐述App Bar的相关知识点。 首先,App Bar是Android设计指南中推荐的用户界面元素,它位于屏幕顶部,...
Android Studio Essential Training视频教程,Part2/3。
《Android官方Training实例详解》 Android官方Training实例是Android开发者学习和进阶的重要资源,它由谷歌官方提供,旨在帮助开发者深入理解Android平台的各种功能和最佳实践。这些实例覆盖了从基础到高级的各种...
### Android培训课程中文版知识点概览 #### 一、Android入门基础 1. **序言** - 介绍Android开发的基础知识,包括Android的历史、特点和发展趋势。 2. **建立第一个App** - 学习如何创建一个新的Android项目。 ...
Android平台具有良好的应用间交互机制,文档将介绍如何使你的应用能够发送数据到其他应用、接收其他应用的数据以及如何允许其他应用启动你的应用中的Activity。 ### 2. 内容分享功能的实现 #### 2.1 简单数据的...
Android Training系列是Google提供的一系列教程,旨在帮助开发者提升技能,而"Android Training学习笔记——Navigation 参考源码"则是对这一主题的深入探讨。 首先,Navigation组件的核心概念是Navigation Graph,...
Android Development Training Course Repository Android アプリ開発の基礎知識と実務スキルを身に付けるトレーニングコース 前提 このトレーニングコースに入る前に、下記の知識・スキルについて勉強しておいてく...
在本项目"AndroidTraining_Android项目_tongue5nn_android_"中,我们主要探讨的是一个Android应用程序的开发,它集成了新闻聚合功能,包括日历新闻和视频内容。这个项目由用户tongue5nn创建,是Android开发的学习...
这篇“Android Training学习笔记”主要围绕这两个组件展开,旨在帮助开发者提升他们的Android应用设计能力。 RecyclerView是Android SDK提供的一种列表视图控件,取代了早期的ListView。RecyclerView的优势在于它的...
Android开发平台技术资料,Android开发平台技术资料