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