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