Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1071788
  • 博文数量: 403
  • 博客积分: 10272
  • 博客等级: 上将
  • 技术积分: 4407
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:22
文章分类

全部博文(403)

文章存档

2012年(403)

分类: 嵌入式

2012-03-06 15:43:43

/********************************************************************************************
 * author:conowen@大钟                                                                                                                          
 * E-mail:conowen@hotmail.com                                                                                                             
 * http://blog.csdn.net/conowen                                                                                                              
 * 注:本文为原创,仅作为学习交流使用,转载请标明作者及出处。      
 ********************************************************************************************/

1、Activity是Android四大组件(Application Components)之一,简单来说Activity就是平常所见到的用户界面,一般情况下,一个Activity所占的窗口是满屏的,但也可以是一个小的位于其它Activity之上的浮动窗口。一个Android工程至少有一个Activity,Activity上面可布有多个view的实例,如文本框、进度条、复选框、按钮等等。多个Activity之间通过Intent来实现跳转。

注:每新建一个activity,就要继承(extends)Activity类,复写onCreate(bundle)方法,然后绑定此activity的布局文件XML

  1. public class secondactivity extends Activity {  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         // TODO Auto-generated method stub  
  6.         super.onCreate(savedInstanceState);  
  7.         setContentView(R.layout.secondactivity);//绑定布局文件  
  8.     }  
  9.       
  10.   
  11. }  

最后还必须在AndroidManifest.xml里面注册这个新增加的activity

  1. <activity  
  2.             android:label="second"  
  3.             android:name=".secondactivity" >  
  4.         activity>  






2、下面为Activity的继承关系,可见Activity继承与Contex类。



3、Activity的生命周期

       其生命周期有如下几种

onCreate()、onRestart()、onStart()、onResume()、onPause()、onStop()、onDestroy()

注:

一般更新activity,要复写onResume(),然后在里面写更新的处理方法。

onpause方法与onstop方法的区别。

如果第二个activity没有完全遮挡住第一个activity时,如第二个activity是对话框形式到时候。就只调用第一个activity的onpause方法。

当第二个对话框完全遮挡住第一个对话框到时候,即第二个Activity是满屏状态,就会调用第一个Activity的onpause和onstop方法。

另外关于onsume方法,只用来获取用户焦点的(其实就是鼠标点击或者拖动之类的),即当前Activity处于激活状态。

  1. //第一个activity启动第二个activity的顺序  
  2.   
  3. first activity  
  4. --onpause  
  5. second activity  
  6. --oncreate  
  7. --onstart  
  8. --onresume  
  9. firsr activity  
  10. --onstop//满屏状态  
  11. //--退掉第二个activity的顺序,接上面  
  12. second activity  
  13. --onpause  
  14. first activity  
  15. --onrestart----------------->和oncreate差不多  
  16. --onstart  
  17. --onresume  
  18. second activity  
  19. --onstop  
  20. --ondestroy  

4、Activity之间的跳转与intent


  1. //第一个Activity  
  2.   
  3. package conowen.Activity.intent;  
  4.   
  5. import android.app.Activity;  
  6. import android.content.Intent;  
  7. import android.os.Bundle;  
  8. import android.view.View;  
  9. import android.widget.Button;  
  10. import android.widget.EditText;  
  11.   
  12.   
  13. public class IntentActivity extends Activity {  
  14.     /** Called when the Activity is first created. */  
  15.     @Override  
  16.     public void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         setContentView(R.layout.main);  
  19.         //新建一个按钮和一个编辑框  
  20.         Button bt = (Button) findViewById(R.id.bt);// 通过id找到在main.xml设定的button,  
  21.         // 而且还强制转换为Button类型,使用findViewById时,前面都要加强制类型。  
  22.           
  23.         bt.setOnClickListener(new View.OnClickListener() {  
  24.             // setOnClickListener里面的参数本来为View.OnClickListener,但是可以直接在里面new这个类的实例,然后写出实例就行  
  25.             @Override  
  26.             public void onClick(View v) {  
  27.                 // TODO Auto-generated method stub  
  28.                 Intent intent = new Intent();  
  29.                 EditText et = (EditText)findViewById(R.id.et);  
  30.                 String tempstr=et.getText().toString();  
  31.                 //.toString()方法表示返回String类型  
  32.                 intent.putExtra("result", tempstr);  
  33.                 //把值塞入intent,让其传递到第二个Activity,intent相当于邮差,携带数据  
  34.                 //"result", tempstr表示键值对,result对应的值为tempstr  
  35.                 intent.setClass(IntentActivity.this, secondactivity.class);  
  36.                 // IntentActivity为第一个Activity,secondActivity为第一个Activity  
  37.                 IntentActivity.this.startActivity(intent);// 开始跳转到第二个Activity  
  38.   
  39.             }  
  40.         });  
  41.   
  42.     }  
  43. }  

  1. //第二个Activity  
  2. package conowen.Activity.intent;  
  3.   
  4. import android.app.Activity;  
  5. import android.content.Intent;  
  6. import android.os.Bundle;  
  7. import android.widget.TextView;  
  8.   
  9. public class secondactivity extends Activity {  
  10.   
  11.     @Override  
  12.     protected void onCreate(Bundle savedInstanceState) {  
  13.         // TODO Auto-generated method stub  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.secondactivity);  
  16.         Intent intent=getIntent();  
  17.         //获取intent  
  18.         TextView textview=(TextView) findViewById(R.id.textview);  
  19.         String res=intent.getStringExtra("result");  
  20.         //通过键值对的键result,获取相对应的数值  
  21.         int resint=Integer.parseInt(res);  
  22.         //把字符串转为整型  
  23.         textview.setText(resint+"");  
  24.         //(resint为整型)后面加双引号,表示括号里面的都是字符串了。  
  25.         //其实这里在括号里面直接写res即可,res本为String类型的,熟悉一下转换方法而已  
  26.           
  27.     }  
  28.       
  29.   
  30. }  
阅读(745) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~