Android任务2总结

任务2学习总结

主要学习了TextView、EditText、Button控件及其常用的属性,根据通过这些控件的学习可以知道完成一个简单项目的步骤,如果完成一个项目要做界面的xml代码和Java代码,在这里有一些硬性的步骤,需要记住。套用即可,有些步骤需要理解灵活运用:

xml代码当中应该注意:

<?xml version="1.0" encoding="utf-8"?>  

** 这是xml的根元素,它必须在第一行,且没有空行;所有元素都是成对并且闭合比如<LinearLayout; xml的元素都是字母都是小写**

xml界面中一般不会出现什么错误,主要是做到ID的我唯一性,单词拼写正确即可,平时在练习的时候尝试加入一些不常用的属性,我想对于初学者的我们会有很大帮助,真正对于我们有难度的还是Java代码

Java 中的步骤:

第一步://定义相关组件,例如private EditText etname; private RadioButton male;控件后的名字不一定要跟xml中的id一致,这只是一个空的变量,在下文将要用到,在取名时尽量保证名字有意义,在这里定义的为成员变量

第二步: //获取这些组件findViewId(让其发生关联)例如:etname = (EditText) findViewById(R.id.et_name);id一定要与xml中的id对应,在这里,也可以省略第一步,用一下语句:final EditText etname = (EditText) findViewById(R.id.et_name);这样,就是局部变量了

第三步: //设置按钮监听事件,例如 btnConfirm = (Button) findViewById(R.id.btn_comfirm); btnConfirm.setOnClickListener(new View.OnClickListener() {

以上三个步骤都是固定模式,套用即可,后面的需要根据功能使用不同的方法,视情况而定,平时应该积累学习中学到的方法,常常上网查找资料学习,而且让老师讲完我们可能用到的方法似乎也不现实

有了以上的基础就可以再练习中积累,纠错中进步,在课堂当中我学到的东西 可以做以下总结:

以任务T2_2Person为例:

1、创建布局文件省略(但注意在坐android:src=""时图片应该在drawable或者mipmap当中有点,区别drawable:关于图片、视频、颜色相关的东西;mipmap:主要是一些图标

2、在Java代码中需要注意的是:

(1)获取性别:
这是根据RadioGroup获取性别

int id = rg.getCheckedRadioButtonId();
 if (id == R.id.rb_teenager) {
 sex = male.getText().toString();
 }else if(id == R.id.rb_lolita) {
sex = female.getText().toString();

1、根据RadioButton的选中状态获取性别:

if(rbtnMale.isChecked()){             //已选中的状态
   sex = rbtnMale.getText().toString();
}else if(rbtnFemale.isChecked()){  
sex = rbtnFemale.getText().toString();

(2)获取CheckBox的指的方式为:

String likedCourse = "";
    if (chbjava.isChecked()) {
    likedCourse += chbjava.getText().toString()+",";
   }
   ```


*这里可以注意一个小的知识点*

if (chbjava.isChecked()) {
likedCourse += chbjava.getText().toString()+",";
}
```

等价于

if (chbjava.isChecked()) {
                       likedCourse = likedCourse + chbjava.getText().toString()+",";
                   }
                   ```


*3、添加一些其他功能常用到的事件*

*OnTouchEvent事件,课本P46*

*处理触屏事件的逻辑为:*


   public boolean onTouchEvent(MotionEvent event) {
           if(event.getAction() == MotionEvent.ACTION_DOWN){
               float x = event.getX();
               float y = event.getY();
               String pos = "x坐标:" + x +",y坐标:"+y;
               Toast.makeText(this,pos,Toast.LENGTH_LONG).show();
           }
           return super.onTouchEvent(event);
   }


*加载菜单*


   public boolean onCreateOptionsMenu(Menu menu){
      menu.add(Menu.NONE,Menu.FIRST+1,1,"保存").setIcon(android.R.drawable.ic_menu_save);
      menu.add(Menu.NONE,Menu.FIRST+2,3,"删除").setIcon(android.R.drawable.ic_menu_delete);
       menu.add(Menu.NONE,Menu.FIRST+3,2,"打开").setIcon(android.R.drawable.ic_menu_add);
        //2.子菜单
       SubMenu subMenu = menu.addSubMenu("子菜单");
       subMenu.add(0,101,0,"子菜单1");             //0表示菜单组的ID,101指菜单项的ID, 0表示顺序(如果并不重要可以写0,也可以为其他数字)   
       subMenu.add(0,101,0,"子菜单2");
       //3.从xml加载菜单,静态(选项菜单)
       getMenuInflater().inflate(R.menu.main,menu);        //菜单加载器 
       MenuInflater inflater =  getMenuInflater();        //获取菜单加载器;
       return true;
   }

*注意:getMenuInflater().inflate(R.menu.main,menu);        //菜单加载器   相当于  getMenuInflater().inflate(R.menu.main,menu);        //菜单加载器 
       MenuInflater inflater =  getMenuInflater();        //获取菜单加载器;*
*上下文菜单见课本P52*

**创建一个普通的对话框* 

   public boolean onOptionsItemSelected(MenuItem item) {
       switch(item.getItemId()){
           case Menu.FIRST + 1:
           case Menu.FIRST + 2:
           case Menu.FIRST + 3:
               Toast.makeText(this,item.getTitle().toString()+"菜单被击中",Toast.LENGTH_LONG).show();
               break;
           case R.id.item_about:
               //创建一个普通的Dialog(让关于可以弹出一个对话框)
               AlertDialog.Builder builder = new AlertDialog.Builder(MeiActivity.this);
               builder.setTitle("关于");
               builder.setIcon(R.mipmap.ic_launcher);
               builder.setMessage("版本为1.0");
               builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int which) {
                       //把dialog关闭(只关dialog本身,不写也会被关闭)
                      dialog.dismiss();
                       //Dialog所在的Activity被关闭(关闭界面本身)
                       MeiActivity.this.finish();
                   }
               });
               builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialogInterface,int i) {
                   }
                   });
                       builder.setNegativeButton("退出",null);
               //创建并显示
               builder.create().show();
               break;
       }
       return super.onOptionsItemSelected(item);

*以上代码主要是课本上没有的代码,及其他的用途,解释及注意的东西穿插在代码中,希望在复习的时候可以看代码的时候能够懂得,并且回忆到老师当时上课所讲的片段,我想代码是永远都敲不完的,与其什么都不懂的敲下去,只会时在练习打字,还不如
放慢脚步好好整理老师讲的内容,解决作业遇到的问题,这次总结我仅仅是总结老师上课讲的很多编写一个项目的步骤,很多课本中的控件的知识我个人觉得很详细了,平时的时候多去看一
下就好了,根据个人整理习惯,我还是比较喜欢整理课本上老师平时补充或者祥讲的内容。这只是课本中的,作业中的整理还在继续,作业中的问题太乱,而且细节东西很多,代码也要修改,与以前作比较,暂时还不能大家分享,十分抱歉,希望我们一直坚持
下去,学好他。*
posted @ 2017-03-28 09:40  殇情璃雪  阅读(126)  评论(6编辑  收藏  举报