`
秦朝古月
  • 浏览: 226848 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

学习Activity

阅读更多
今天继续看了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>
1
0
分享到:
评论

相关推荐

    Android开发 猴子摘桃小项目——学习Activity之间的数据回传

    本项目"猴子摘桃"是一个简单的小程序,旨在帮助开发者学习和理解如何在不同的Activity之间进行数据传递,这是Android开发中的一项重要技能。下面将详细阐述在Android中Activity间数据回传的关键知识点。 1. **...

    深入学习Android activity

    除了以上内容,深入学习Activity还应关注: - 布局管理:如何使用XML布局文件创建用户界面,以及如何在代码中动态添加和修改视图。 - Activity的启动模式:standard、singleTop、singleTask和singleInstance,它们...

    Android四大组件——Activity(一)Activity之间通信及其生命周期变化

    在Android应用开发中,Activity是四大组件之一,它是用户与应用程序交互的主要界面。理解Activity的通信方式和生命周期变化是每个Android开发者必须掌握的基础知识。在本篇内容中,我们将深入探讨Activity之间的通信...

    (自测)Android开发 猴子摘桃小项目学习Activity之间的数据回传

    在Android应用开发中,Activity是构成应用程序的基本组件,它负责用户界面的展示和交互。"猴子摘桃"小项目是一个常见的教学示例,用于帮助开发者理解如何在不同的Activity之间传递数据,这是Android开发中的核心技能...

    详解 Android 的 Activity 组件

    最后,关于EX01这个压缩包文件,可能包含了一些示例代码或练习项目,用于辅助学习Activity的使用。读者可以解压文件,运行并分析代码,以更直观地理解Activity的工作方式和生命周期管理。 总的来说,理解并掌握...

    安卓activity学习

    在Android开发中,Activity是应用程序的核心组件之一,它代表了用户与应用交互的界面。...学习Activity生命周期不仅可以帮助你编写健壮的Android应用,也是面试中经常被问到的问题,因此熟练掌握Activity至关重要。

    Android应用程序的Activity启动过程简要介绍和学习计划.doc

    1. **理解Activity生命周期**:深入学习Activity的各个状态(如创建、暂停、恢复、销毁等),以及`onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop()`, `onDestroy()`等生命周期方法的作用。...

    Android应用源码之9.Activity高级学习.zip

    这个"Android应用源码之9.Activity高级学习.zip"文件显然为我们提供了一个深入学习Activity高级特性的资源。以下是一些关于Activity高级学习的关键知识点: 1. **生命周期管理**:Activity的生命周期是其核心特性,...

    Android应用源码之(Activity生命周期).zip

    这个压缩包“Android应用源码之(Activity生命周期).zip”显然是为了帮助开发者更直观地理解和学习Activity生命周期的各个阶段。 Activity的生命周期主要由七个关键回调方法构成: 1. **onCreate()**:当Activity...

    android-activity_学习资料

    "android-activity_学习资料"的压缩包很可能包含了关于Activity的深入学习材料,旨在帮助开发者理解并熟练掌握这一关键概念。Activity是Android系统中用于显示用户界面的类,它可以展示一个屏幕,接收用户输入,并对...

    Activity活动详简总结

    开发者应当深入学习Activity的生命周期、启动模式、Intent使用以及通信机制,以实现更优秀的用户体验。通过阅读"Activity活动详解总结博客文章源程序",您将能够获取更多关于Activity的实践经验和技巧。

    实验4 Activity生命周期1

    在这个实验中,学生将深入学习Activity如何在不同操作下经历各种状态变化,以及如何实现Activity之间的跳转。 一、Activity生命周期 Activity的生命周期包括以下几个关键状态: 1. **创建(Created)**:当...

    activity工作流1

    二、为什么Java开发者要学习Activity工作流 在Java开发中,Activity和JBPM是常用的工作流系统。Activity由于其优越的性能和易用性,逐渐成为首选。Activity的开发者来自Jbpm团队,这使得Activity具备了替代JBPM的...

    Android Activity学习笔记

    Android Activity学习笔记 Android Activity是Android系统中最基本的组件之一,它负责处理用户交互和显示用户界面。本文将深入讲解Activity的生命周期、Activity之间的数据交互、Activity启动模式、Task和BackStack...

    activity-transitions-master.rar

    综上所述,这个压缩包为Android开发者提供了一个研究和学习Activity过渡动画的实践平台。开发者可以通过阅读和调试源代码,了解如何在Android应用中创建动态且引人入胜的界面过渡效果。同时,"JavaApk源码说明.txt" ...

    疯狂android资料:第四章深入理解Activity.doc

    在Android应用开发中,Activity是核心组件之一,用于与用户交互并展示用户界面。本章深入探讨了Activity的建立、配置以及生命周期等关键概念...深入学习Activity,将有助于开发者更好地设计和实现功能丰富的用户界面。

    activity demo例子

    在这个"activity demo例子"中,我们将深入学习Activity的基本概念、生命周期以及如何创建和管理多个Activity。 首先,Activity是Android应用程序的主要构建块,用于显示用户界面并处理用户的交互事件。在...

    学习Java流程框架Activiti7资料、教程及源码

    阅读建议:此资源以开发简单的人力资源系统,学习Activity的原理和机制和使用,不仅是代码编写实现也更注重内容上的需求分析和方案设计,所以在学习的过程要结合这些内容一起来实践,并调试对应的代码。是一套非常好...

    【MarsChen】D04_Activity初步

    【MarsChen】D04_Activity初步 在Android应用开发中,Activity是一个至关重要的概念,它是用户界面的...通过阅读和分析`MC0401_Activity01`中的代码,可以更深入地学习Activity的使用方法和技巧,从而提升开发能力。

Global site tag (gtag.js) - Google Analytics