好贷网好贷款

Android学习笔记入门01 : Activity

发布时间:2016-12-4 22:20:04 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Android学习笔记入门01 : Activity",主要涉及到Android学习笔记入门01 : Activity方面的内容,对于Android学习笔记入门01 : Activity感兴趣的同学可以参考一下。

  Activity学习笔记  1 概念 Activity其实就是窗口(Window) 文档地址:   http://developer.android.com/reference/android/app/Activity.html 2 生命周期  生命周期图: 出自Android.app.Activity       运行(Running)就是窗口在前端,暂停( Pause)就是窗口部分被遮盖失去了焦点,停止( Stop)就是窗口完全看不见了.销毁(Destory)就是窗口被从内存中清除了. 启动时执行 onCreate  onStart onResume 三个方法 被部分遮蔽时 执行 onPause 方法 重新回到前台 onResume方法  完全看不到(如按HOME) 时,执行onPause onStop方法, 回到前台执行onStart onResume方法 被销毁时(如按返回键)  执行 onPause onStop onDestory .   3 操作Activity  AndroidManifest.xml中的Application下  android:theme可以操作主题 android:theme="@android:style/Theme.NoTitleBar" 表示一个没有标题栏    android:theme="@android:style/Theme.Translucent.NoTitleBar" 表示一个透明无标题的应用 4 启动Activity 首先每个要启动的Activity都必须写进AndroidManifest文件中, 在Appication结点下建一个 <activity android:name="Act01"></activity> 写上类名就行了 其次启动使用Context方法中的startActivity(Intent i)方法,由于 Activity就是一个Context所以可以直接用,不必写对象.  还需要一个描述要启动的应用的Intent. 代码如下:  Intent intent = new Intent(MainActivity.this, Act01.class); startActivity(intent); Intent构造函数的第一个参数是一个Context,第二个是要启动的Activity类. 由于这两行是在点击按钮动作中写的,所在的是一个点击按钮动作的匿名类,所以不能直接用this.  5 关闭Activity 调用finish() 方法 6 Activity的数据传递 6.1 传递数据  Intent intent = new Intent(MainActivity.this, Act01.class); intent.putExtra("key", "hello aty01"); startActivity(intent); 想传递比较复杂的数据类型 可以传递 Bundle ,相当于将一系列数据打包    Bundle bundle = new Bundle();  int[] array01 = { 1, 2, 3, 4 };  int[] array02 = { 4, 3, 2, 1 };  bundle.putIntArray("array01", array01);  bundle.putIntArray("array02", array02);  intent.putExtra("bundle", bundle); 相当与传递了一个包含两个数组的结构体 6.2 取得数据   Intent intent = getIntent(); // 得到与这个Activity关联的Intent  String str = intent.getStringExtra("key");    Bundle data = getIntent().getBundleExtra("bundle");  int array01[] = data.getIntArray("array01");  int array02[] = data.getIntArray("array02"); 6.3 取得第二个Activity传回的数据 1 只能使用startActivityForResult()启动第二个Activity startActivityForResult(intent, 0); 多了一个请求码  2 第二个Activity在finish前要设置好返回值  Intent data = new Intent();  data.putExtra("result", "abc");  setResult(1, data); finish(); 3 第一个Activity中重写  onActivityResult 来获取数据 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); String str = data.getStringExtra("result"); System.out.println(resultCode + " " + str); } 结束 ========================================= 程序: MainActivity package cn.zyh.activity; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private Button btnStartAty1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); System.out.println("onCreate"); // 先有setContentView将Activity和布局绑定,才能findViewById btnStartAty1 = (Button) findViewById(R.id.btn01); btnStartAty1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, Act01.class); intent.putExtra("key", "hello aty01"); // 添加复杂的数据 通过bundle完成 Bundle bundle = new Bundle(); int[] array01 = { 1, 2, 3, 4 }; int[] array02 = { 4, 3, 2, 1 }; bundle.putIntArray("array01", array01); bundle.putIntArray("array02", array02); intent.putExtra("bundle", bundle); // startActivity(intent); startActivityForResult(intent, 0); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); String str = data.getStringExtra("result"); System.out.println(resultCode + " " + str); } @Override protected void onStart() { super.onStart(); System.out.println("onStart"); } @Override protected void onResume() { super.onResume(); System.out.println("onResume"); } @Override protected void onPause() { super.onPause(); System.out.println("onPause"); } @Override protected void onStop() { super.onStop(); System.out.println("onStop"); } @Override protected void onDestroy() { super.onDestroy(); System.out.println("onDestory"); } @Override protected void onRestart() { super.onRestart(); System.out.println("onRestart"); } } Act01 package cn.zyh.activity; import java.util.Arrays; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class Act01 extends Activity { private Button btnClose; private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.act01); btnClose = (Button) findViewById(R.id.btn02); btnClose.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent data = new Intent(); data.putExtra("result", "abc"); setResult(1, data); finish(); } }); tv = (TextView) findViewById(R.id.tv); Intent intent = getIntent(); // 得到与这个Activity关联的Intent String str = intent.getStringExtra("key"); Bundle data = getIntent().getBundleExtra("bundle"); int array01[] = data.getIntArray("array01"); int array02[] = data.getIntArray("array02"); str += (" " + Arrays.toString(array01) + " " + Arrays.toString(array02)); tv.setText(str); } }    

上一篇:电脑访问手机站跳转至电脑站代码
下一篇:c++ 常见笔试题

相关文章

相关评论