`
阅读更多

Activity基础小结

Activity:与用户交互的基本呈现单元

 

3种状态:运行、停止(Home键)、暂停(长按Home键半透明,后面遮住前面)

 

生命周期:7个方法



 

基本操作:

 

1.启动一个Activity

 

由MainActivity通过按钮跳到Aty1,按钮监听器代码如下:

			Intent i = new Intent(MainActivity.this,Aty1.class); 
			startActivity(i);

 

2.关闭一个Activity

 

在Aty1点击按钮关闭,按钮监听器代码如下:

finish();

 

3.传递数据

 

从MainActivity把数据传到Aty1,两种处理方式:

 

(1):简单数据:

 

MainActivity.java核心代码:

	Intent i = new Intent(MainActivity.this,Aty1.class); 
	i.putExtra("txt1", "Hello!");
	startActivity(i);

 

Aty1.java核心代码:

tvOut.setText(getIntent().getStringExtra("txt1"));

 

(2):复杂数据

 

MainActivity.java核心代码:

Intent i = new Intent(MainActivity.this,Aty1.class); 
Bundle data = new Bundle();
data.putString("Hello");
i.putExtras(data);
startActivity(i);

 

Aty.java核心代码:

Bundle data = getIntent().getExtras();
String txt1 = data.getString("txt1");
tvOut.setText(txt1);

 

4.取回第二个Activity返回的数据,不能用startActivity(),而应该用startActivityForResult()

 

MainActivity.java核心代码:

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    	// TODO Auto-generated method stub
    	String result = data.getStringExtra("result");
    	tvOut = (TextView) findViewById(R.id.tvOut);
    	tvOut.setText(result);
        super.onActivityResult(requestCode, resultCode, data);
    }

 

Aty1.java核心代码:

btnClose.setOnClickListener(new View.OnClickListener() {
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			Intent i = new Intent();
			i.putExtra("result", "Hi");
			setResult(0, i);
		    finish();	
		}
	});

 

现整体代码如下,目的:验证7个方法的执行顺序;采用传送复杂数据的方式从MainActivity把“Hello”传到Aty1,并且接收Aty1传回的“Hi”

 

MainActivity.java

package com.example.jk_jc_sidazujian;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

	private Button btnStartAty1; 
	private TextView tvOut;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		btnStartAty1 = (Button) findViewById(R.id.btnStartAty1);
		btnStartAty1.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
			Intent i = new Intent(MainActivity.this,Aty1.class); 
//				i.putExtra("txt1", "Hello!");
//				startActivity(i);
		        Bundle data = new Bundle();
		        data.putString("txt1", "Hello");
			    i.putExtras(data);
				startActivityForResult(i, 0);
			}
		});
		System.out.println("onCreat");
		
	}
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    	// TODO Auto-generated method stub
    	String result = data.getStringExtra("result");
    	tvOut = (TextView) findViewById(R.id.tvOut);
    	tvOut.setText(result);
    	
    	
    	super.onActivityResult(requestCode, resultCode, data);
    }
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
    @Override
    protected void onStart() {
    	// TODO Auto-generated method stub
    	super.onStart();
    	System.out.println("onStart");
    }
    
    @Override
    protected void onResume() {
    	// TODO Auto-generated method stub
    	super.onResume();
    	System.out.println("onResume");
    }
    
    @Override
    protected void onPause() {
    	// TODO Auto-generated method stub
    	super.onPause();
    	System.out.println("onPause");
    }
    
    @Override
    protected void onStop() {
    	// TODO Auto-generated method stub
    	super.onStop();
    	System.out.println("onStop");
    }
    
    @Override
    protected void onDestroy() {
    	// TODO Auto-generated method stub
    	super.onDestroy();
    	System.out.println("onDestory");
    }
    
    @Override
    protected void onRestart() {
    	// TODO Auto-generated method stub
    	super.onRestart();
    	System.out.println("onRestart");
    }
}

 

Aty1.java

package com.example.jk_jc_sidazujian;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Aty1 extends Activity {
	
	private Button btnClose;
	private TextView tvOut;
@Override
protected void onCreate(Bundle savedInstanceState) {
	// TODO Auto-generated method stub
	super.onCreate(savedInstanceState);
	setContentView(R.layout.aty1);
	tvOut= (TextView) findViewById(R.id.tvOut);
	Bundle data = getIntent().getExtras();
	String txt1 = data.getString("txt1");
	tvOut.setText(txt1);
	
	btnClose = (Button) findViewById(R.id.btnClose);
	
	btnClose.setOnClickListener(new View.OnClickListener() {
		
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			Intent i = new Intent();
			i.putExtra("result", "Hi");
			setResult(0, i);
		    finish();	
		}
	});
}
}

相应布局xml文件就不赘述了。

 

运行效果如下:

 

点击start Aty1按钮

 

点击btnclose

 


 

 

 

 

 

 

  • 大小: 49.9 KB
  • 大小: 7.8 KB
  • 大小: 9.2 KB
  • 大小: 13.4 KB
  • 大小: 9.8 KB
  • 大小: 9.2 KB
  • 大小: 13.4 KB
分享到:
评论

相关推荐

    android Activity 详解

    ### 小结 本篇对Android中的Activity进行了详细的介绍,涵盖了Activity的基础概念、生命周期、状态管理以及主题样式设置等方面的内容。理解Activity的生命周期对于开发高质量的Android应用至关重要,它可以帮助...

    android 小结

    在Android开发领域,小结通常意味着对某个特定主题或技术的综合概述。在这个"android小结"中,我们可以探讨一些核心的Android知识点,包括但不限于源码解析、工具使用以及一个可能的示例项目"MainActivityDemo"。让...

    android四大组件知识小结

    总结来说,Android的四大组件各有其独特的功能,它们相互协作,共同构成了Android应用的基础架构。Activity负责用户界面,Service处理后台任务,BroadcastReceiver监听并响应系统和应用事件,而ContentProvider则...

    Android入门小结

    【Android入门小结】 在Android开发领域,初学者往往会面临许多挑战,但通过逐步学习和实践,这些困难都能够迎刃而解。这篇博客主要总结了Android开发的基础知识,旨在帮助新接触这一领域的开发者快速上手。 一、...

    Android知识小结

    以下是对Android知识的一些小结,旨在分享遇到的问题及其解决方案,帮助开发者提升技能和解决问题。 1. **UI设计与布局**:Android使用XML来定义用户界面布局。`efefe.PNG`、`weff.PNG`可能展示了不同类型的布局,...

    Android问题小结

    本资料包"Android问题小结"是针对Android开发者的一个宝贵资源集合,涵盖了多个方面的知识,包括事件分发机制、设计模式、图层管理、属性动画、框架使用、应用安全以及个人职业发展规划等。 首先,"技术交流--...

    Android典型技术模块开发详解

    目录 第一篇 Android开发初步 第1章 Android初识 1.1 Android简介 1.1.1 认识Android 1.1.2 Android系统框架 1.1.3 应用程序框架 1.2 Eclipse开发环境 1.2.1 安装ADT插件 1.2.2 安装SDK ...16.7 本章小结

    Android异步加载图像小结 (含线程池,缓存方法).rar

    它以Linux内核为基础,结合了丰富的应用编程接口(API)和强大的开发工具,支持多种编程语言如Java、Kotlin和C++,为开发者提供了灵活性和扩展性。 主要内容 架构层次: Linux内核:Android的底层使用Linux内核,...

    《Android应用开发揭秘》附带光盘代码.

    《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言  第一部分 准备篇  第1章 Android开发简介  1.1 Android基本概念  1.1.1 Android简介  1.1.2 Android的系统构架 ... 17.4小结

    《Android应用开发揭秘》源码

    作者简介  杨丰盛,Android应用开发先驱,对Android有深入研究,实战经验极其丰富。精通Java、C、C++等语言,专注于移动通信软件开发,在机顶盒软件开发和MTK平台软件开发方面有非常深厚的积累。... 17.4小结

    android开发揭秘PDF

    1.3 小结 第2章 Android开发环境搭建 2.1 Android开发准备工作 2.2 开发包及其工具的安装和 配置 2.2.1 安装JDK和配置Java开发 环境 2.2.2 Eclipse的安装与汉化 2.2.3 SDK和ADT的安装和 配置 2.3 创建第一个Android...

    android开发入门教程

    9.4 本章小结 第10章 一切为用户服务——Service应用实例 10.1 认识Service 10.2 使用Service 10.3 Service的生命周期 10.4 实例学习Service 10.4.1 精彩实例一——定时提醒 10.4.2 精彩实例二——音乐播放器 10.5 ...

    软件工程考点小结.pdf

    4. **ABC (Activity-Based Costing)**: 基于活动的成本计算是一种会计方法,用于计算产品、服务或客户的成本。它将间接成本分配给活动,然后将活动成本分配给产品、服务或客户。 5. **XP (Extreme Programming)**: ...

    Android应用开发揭秘

    杨丰盛,Android应用开发先驱,对Android有深入研究,实战经验极其丰富。精通Java、C、C++等语言,专注于移动通信软件开发,在机顶盒软件开发和MTK平台软件开发方面有非常深厚的积累。2007年获得中国软件...17.4小结

    《深入理解Android》卷Ⅰ

    第1章 阅读前的准备工作 1.1 系统架构 1.1.1 Android系统架构 1.1.2 本书的架构 1.2 搭建开发环境 1.2.1 下载源码 1.2.2 编译源码 1.3 工具介绍 1.3.1 Source Insight介绍 1.3.3 Busybox的使用 ...10.5 本章小结

    Android中闪屏实现方法小结(普通闪屏、倒计时闪屏、倒计时+动画闪屏)

    普通闪屏是最基础的实现方式,它通常只显示一个固定的启动画面,然后迅速跳转到主界面。在Android中,可以通过创建一个新的Activity来实现这一功能。首先,在`res/layout`目录下创建`activity_splashscreen.xml`布局...

    疯狂Android讲义源码

     1.7 本章小结 33  第2章 Android应用的界面编程 35  2.1 界面编程与视图(View)组件 36  2.1.1 视图组件与容器组件 36  2.1.2 使用XML布局文件控制UI  界面 40  2.1.3 在代码中控制UI界面 41  2.1.4 使用...

Global site tag (gtag.js) - Google Analytics