今天继续看了Android的教程,学会了下边一些东西。
- 使用XML 布局创建一个简单的应用程序
- 用基于Java 的布局来创建
- 运行Android 应用程序
- 使用Logcat 来调试
- 使用Intent 来开启(子)Activity
- 找到在XML 中定义的View、在Java 代码中使用它们
- 为View 处理点击事件
- 从SubActivity 返回值
- 使用Bundle 传递数据给SubActivity
Activity 状态
① 当一个Activity 在屏幕的最上层时(对堆栈的最顶端),它就是属于active 或者running 的状态
② 如果一个Activity 失去焦点(focus)但还看得到它的画面(比如:一个新的Activity 画面并不是全屏幕或者它是一个半透明的情况),那失去焦点的Activity 则处在paused 的状态。像这个失去焦点的Activity它还是完全活着的,并没有消失。(活着的意思是指,Activity 自己本身所有的状态及数据都还是存在的,也跟窗口管理程序window manager 保持联系着),像这种paused 的Activity,会在一种情况下消失,那就是当系统的内存不够用之时,系统会自动判断,八部重要的Activity 移除。
③ 如果一个Activity 被其它的Activity 完全的遮盖住时,它仍然保有全部的状态及数据,但因为它已不再被使用者看见,所以它的画面是被隐藏起来的(画面不需要更新),当系统内存不足时,这种stop 状态的Activity 时最先被系统考虑拿下来释放内存的。
④ 当一个Activity 处于pause 或stop 的状态时,系统可以要求Activity 结束(finish)或直接移除(kill)它。当它需要再度呈现在使用者面前时,它必须要能完整的重新启动及回复先前的状态。
跟着教程实现了一个小程序,可以打开一个子Activity (屏幕),输入我们想查找的字符串。提交后使用Google 进行搜索,并把主Activity 的Title 改为该字符串。
src/peng/test/StartingSubactivities.java 主Activity 类代码
package peng.test;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class StartingSubactivities extends Activity
implements OnClickListener {
private Button open;
private Intent toIntent;
private static final int MYSECONDACTIVITY_REQUESTCODE = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
open = (Button)this.findViewById(R.id.btn_open_search);
open.setOnClickListener(this);
}
@Override
public void onClick(View v) {
toIntent = new Intent();
toIntent.setClass(StartingSubactivities.this, MySecondActivity.class);
startActivityForResult(toIntent, MYSECONDACTIVITY_REQUESTCODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d("DEBUGTAG", "RequestCode = " + requestCode);
switch (requestCode) {
case MYSECONDACTIVITY_REQUESTCODE:
Log.d("DEBUGTAG", "ResultCode = " + resultCode);
if (resultCode == RESULT_CANCELED) {
setTitle("Result Canceled");
} else {
String getStringFrom = data.getStringExtra("GET_TEXT");
setTitle(getStringFrom);
Intent webIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.google.com/search?q=" + getStringFrom));
startActivity(webIntent);
}
break;
}
}
}
res/layout/main.xml 主Activity 的Layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/btn_open_search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Open Search-Dialog"
/>
</LinearLayout>
src/peng/test/MySecondActivity.java 子Activity 类代码
package peng.test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MySecondActivity extends Activity
implements OnClickListener {
private EditText getText;
private Button back;
private String getString;
private Intent backIntent;
private Bundle backBundle;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
getText = (EditText)findViewById(R.id.et_keyword);
back = (Button)findViewById(R.id.btn_return);
back.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn_return) {
getString = getText.getText().toString();
backIntent = new Intent();
backBundle = new Bundle();
backBundle.putString("GET_TEXT", getString);
backIntent.putExtras(backBundle);
setResult(RESULT_OK, backIntent);
Log.d("DEBUGTAG", "Input String = " + getString);
finish();
}
}
}
res/layout/second.xml 子Activity 的Layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/et_keyword"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/btn_return"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Submit"
/>
</LinearLayout>
分享到:
相关推荐
本项目"猴子摘桃"是一个简单的小程序,旨在帮助开发者学习和理解如何在不同的Activity之间进行数据传递,这是Android开发中的一项重要技能。下面将详细阐述在Android中Activity间数据回传的关键知识点。 1. **...
除了以上内容,深入学习Activity还应关注: - 布局管理:如何使用XML布局文件创建用户界面,以及如何在代码中动态添加和修改视图。 - Activity的启动模式:standard、singleTop、singleTask和singleInstance,它们...
在Android应用开发中,Activity是四大组件之一,它是用户与应用程序交互的主要界面。理解Activity的通信方式和生命周期变化是每个Android开发者必须掌握的基础知识。在本篇内容中,我们将深入探讨Activity之间的通信...
在Android应用开发中,Activity是构成应用程序的基本组件,它负责用户界面的展示和交互。"猴子摘桃"小项目是一个常见的教学示例,用于帮助开发者理解如何在不同的Activity之间传递数据,这是Android开发中的核心技能...
最后,关于EX01这个压缩包文件,可能包含了一些示例代码或练习项目,用于辅助学习Activity的使用。读者可以解压文件,运行并分析代码,以更直观地理解Activity的工作方式和生命周期管理。 总的来说,理解并掌握...
在Android开发中,Activity是应用程序的核心组件之一,它代表了用户与应用交互的界面。...学习Activity生命周期不仅可以帮助你编写健壮的Android应用,也是面试中经常被问到的问题,因此熟练掌握Activity至关重要。
1. **理解Activity生命周期**:深入学习Activity的各个状态(如创建、暂停、恢复、销毁等),以及`onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop()`, `onDestroy()`等生命周期方法的作用。...
这个"Android应用源码之9.Activity高级学习.zip"文件显然为我们提供了一个深入学习Activity高级特性的资源。以下是一些关于Activity高级学习的关键知识点: 1. **生命周期管理**:Activity的生命周期是其核心特性,...
这个压缩包“Android应用源码之(Activity生命周期).zip”显然是为了帮助开发者更直观地理解和学习Activity生命周期的各个阶段。 Activity的生命周期主要由七个关键回调方法构成: 1. **onCreate()**:当Activity...
"android-activity_学习资料"的压缩包很可能包含了关于Activity的深入学习材料,旨在帮助开发者理解并熟练掌握这一关键概念。Activity是Android系统中用于显示用户界面的类,它可以展示一个屏幕,接收用户输入,并对...
开发者应当深入学习Activity的生命周期、启动模式、Intent使用以及通信机制,以实现更优秀的用户体验。通过阅读"Activity活动详解总结博客文章源程序",您将能够获取更多关于Activity的实践经验和技巧。
在这个实验中,学生将深入学习Activity如何在不同操作下经历各种状态变化,以及如何实现Activity之间的跳转。 一、Activity生命周期 Activity的生命周期包括以下几个关键状态: 1. **创建(Created)**:当...
二、为什么Java开发者要学习Activity工作流 在Java开发中,Activity和JBPM是常用的工作流系统。Activity由于其优越的性能和易用性,逐渐成为首选。Activity的开发者来自Jbpm团队,这使得Activity具备了替代JBPM的...
Android Activity学习笔记 Android Activity是Android系统中最基本的组件之一,它负责处理用户交互和显示用户界面。本文将深入讲解Activity的生命周期、Activity之间的数据交互、Activity启动模式、Task和BackStack...
综上所述,这个压缩包为Android开发者提供了一个研究和学习Activity过渡动画的实践平台。开发者可以通过阅读和调试源代码,了解如何在Android应用中创建动态且引人入胜的界面过渡效果。同时,"JavaApk源码说明.txt" ...
在Android应用开发中,Activity是核心组件之一,用于与用户交互并展示用户界面。本章深入探讨了Activity的建立、配置以及生命周期等关键概念...深入学习Activity,将有助于开发者更好地设计和实现功能丰富的用户界面。
在这个"activity demo例子"中,我们将深入学习Activity的基本概念、生命周期以及如何创建和管理多个Activity。 首先,Activity是Android应用程序的主要构建块,用于显示用户界面并处理用户的交互事件。在...
阅读建议:此资源以开发简单的人力资源系统,学习Activity的原理和机制和使用,不仅是代码编写实现也更注重内容上的需求分析和方案设计,所以在学习的过程要结合这些内容一起来实践,并调试对应的代码。是一套非常好...
【MarsChen】D04_Activity初步 在Android应用开发中,Activity是一个至关重要的概念,它是用户界面的...通过阅读和分析`MC0401_Activity01`中的代码,可以更深入地学习Activity的使用方法和技巧,从而提升开发能力。