1 清单文件介绍
[1]清单文件里面的package就是当前应用的包名

[2]Activity代表界面

[3]Application节点的icon 和lable可以和Activity的不一样 如果Activity下设置了自己的icon和lable那么使用自己的设置的图标 如果Activity下不设置icon属性,默认使用Application下的icon属性

[4]如果你想让你的应用程序有多个启动图标 必须在Activity下做如下配置



[5]默认情况下一个应用就设置一个启动图标

2 意图介绍

[1]谷歌要求Android下的四大组件都必须(must)在清单文件配置 如果不在清单文件配置Activity 会报如下错误

1.07-05 02:26:36.530: E/AndroidRuntime(2456): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.itheima.intent/com.itheima.intent.Test2Activity}; have you declared this activity in your AndroidManifest.xml?

意图分类

[1]隐式意图

含义:通过设置一组动作或者数据来开启activity

[2]显示意图

具体指定要开启activity 包名类名

[3]隐式意图和显示意图的应用场景

隐式意图一般用于开启系统的应用(比如电话拨号器 短信发送器 浏览器)

   显示意图 开启自己应用的界面

3 人品计算器

算命大师 风水大师

[1]画布局

[2]根据布局写对应的业务 逻辑

mainActivity的逻辑如下

1. 
 2. 
 3. private EditText et_name; 
 4. private RadioGroup rg_group; 
 5. 
 6. @Override 
 7. protected void onCreate(Bundle savedInstanceState) { 
 8. super.onCreate(savedInstanceState); 
 9. setContentView(R.layout.activity_main); 
 10. 
 11. // [1]找到控件 
 12. 
 13. et_name = (EditText) findViewById(R.id.et_name); 
 14. rg_group = (RadioGroup) findViewById(R.id.rg_group); 
 15. } 
 16. 
 17. // 点击按钮 计算人品 
 18. public void click(View v) { 
 19. // [2]获取姓名 
 20. String name = et_name.getText().toString().trim(); 
 21. if (TextUtils.isEmpty(name)) { 
 22. Toast.makeText(getApplicationContext(), “name不能为空”, 1).show(); 
 23. return; 
 24. } 
 25. // [3]获取性别 
 26. int radioButtonId = rg_group.getCheckedRadioButtonId(); 
 27. int sex = 0; //代表性别 
 28. switch (radioButtonId) { 
 29. case R.id.rb_maile: // 代表选择了男 
 30. 
 31. sex = 1; 
 32. break; 
 33. 
 34. case R.id.rb_femaile: // 代表选择了女 
 35. 
 36. sex = 2; 
 37. break; 
 38. 
 39. case R.id.rb_other: // 代表选择了人妖 
 40. 
 41. sex = 3; 
 42. break; 
 43. } 
 44. 
 45. if (sex == 0) { 
 46. Toast.makeText(getApplicationContext(), “你到底是人是鬼”, 1).show(); 
 47. return; 
 48. } 
 49. //[4]实现跳转页面 用显示 隐士 
 50. Intent intent = new Intent(this, ResultActivity.class); 
 51. //[4.1]把姓名和性别传递到第二个页面 //底层就是map 
 52. intent.putExtra(“name”, name); 
 53. intent.putExtra(“sex”, sex); 
 54. 
 55. startActivity(intent); 
 56. //[5]开启意图 
 57. 
 58. 
 59. }

结果页面的逻辑如下

1. 
 2. 
 3. 
 4. @Override 
 5. protected void onCreate(Bundle savedInstanceState) { 
 6. super.onCreate(savedInstanceState); 
 7. setContentView(R.layout.acctivity_result); 
 8. //[1]找到控件 
 9. TextView tv_name = (TextView) findViewById(R.id.tv_name); 
 10. TextView tv_sex = (TextView) findViewById(R.id.tv_sex); 
 11. TextView tv_result = (TextView) findViewById(R.id.tv_result); 
 12. //[2]获取第一个页面传递过来的数据 编程思想 数据是怎么传递的 就怎么取 传递的是什么类型就取什么类型 
 13. Intent intent = getIntent(); //获取开启此Activity的意图对象 
 14. //[3]获取数据 
 15. String name = intent.getStringExtra(“name”); //获取姓名的数据 
 16. int sex = intent.getIntExtra(“sex”, 0); 
 17. //[4]设置姓名和性别 
 18. tv_name.setText(name); 
 19. byte[] bytes = null; 
 20. 
 21. try { 
 22. switch (sex) { 
 23. case 1: //代表男 
 24. tv_sex.setText(“男”); 
 25. bytes = name.getBytes(“utf-8”); 
 26. break; 
 27. 
 28. case 2: //代表女 
 29. tv_sex.setText(“女”); 
 30. bytes = name.getBytes(“gbk”); 
 31. break; 
 32. case 3: //代表女 
 33. tv_sex.setText(“人妖”); 
 34. bytes = name.getBytes(“iso-8859-1”); 
 35. break; 
 36. } 
 37. } catch (UnsupportedEncodingException e) { 
 38. e.printStackTrace(); 
 39. } 
 40. //[5]算人品 根据姓名去算 
 41. int total = 0; 
 42. for (byte b : bytes) { //0001 1111 101 
 43. int number = b&0xff; //1111 1111 100 
 44. total+=number; 
 45. } 
 46. int score = Math.abs(total)%100; 
 47. if (score>90) { 
 48. tv_result.setText(“您的人品非常好,您家祖坟都冒青烟了”); 
 49. }else if (score >70) { 
 50. tv_result.setText(“你的人品太好了..你就是当代活雷锋啊”); 
 51. }else if (score >60) { 
 52. tv_result.setText(“你的人品刚刚及格 需要努力啊”); 
 53. }else { 
 54. tv_result.setText(“算了,跟你没什么人品好谈的…”); 
 55. } 
 56. 
 57. 
 58. 
 59. }

4 短信大全

07-05 06:33:38.872: I/ActivityManager(1010): START {cmp=com.android.mms/.ui.ComposeMessageActivity u=0} from pid 1359

实际上就是跳转到ComposeMessageActivity 

[1]画布局 使用一个listview 把常见好的短信内容展示到listview上 

[2]当我点击listview一个条目的时候把点中条目的内容取出来发到 系统发短信页面  由于要跳转的是系统应用的页面所以我们使用隐式意图 

[3]具体实现代码如下
1. 
 2. 
 3. 
 4. String objects[] ={“今天的风儿轻柔无比,今天的花儿香飘万里;今天的鸟儿十分欢喜,今天的云儿满载笑意;今天的事儿万分顺利,今天的人儿如此甜蜜。所有美…,”, 
 5. “丫头,生活是你自己的,你哭它就对你哭,你笑它就对你笑。转眼,又是一年,你的生日即将来到。今年,还是少不了我对你的祝福,我忍不住…”, 
 6. “世界上最动听的声音,是妈妈声声的呼唤;世界上最温暖的笑容,是妈妈温暖的笑脸。妈妈,原谅生日时我不能陪在您身边,在这个日子里,我…”, 
 7. “今天是你的生日,祝你:发财势头如快马加鞭,一日千里;发展速度如滔滔江水,势不可挡;好事发生如雨后春笋,络绎不绝;祝福发送如比赛…”}; 
 8. @Override 
 9. protected void onCreate(Bundle savedInstanceState) { 
 10. super.onCreate(savedInstanceState); 
 11. setContentView(R.layout.activity_main); 
 12. 
 13. //[1]找到控件 
 14. ListView lv = (ListView) findViewById(R.id.lv); 
 15. //[2]使用arrayAdapter 
 16. lv.setAdapter(new ArrayAdapter(getApplicationContext(), R.layout.itme, objects)); 
 17. //[3]给listview设置点击事件 小技巧 :以后不管给任何控件设置什么(点击 触摸 长按…..)事件 
 18. lv.setOnItemClickListener(new OnItemClickListener() { 
 19. 
 20. //当listview 的条目被点击的时候调用 //view展示数据 
 21. @Override 
 22. public void onItemClick(AdapterView