欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

Android--近来学习总结(2017/3/27)

发布时间:2025/3/18 Android 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Android--近来学习总结(2017/3/27) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

近来学习总结

从刚开始接触Android课到现在,确实学到了不少东西,当然也碰到过一些问题。就从最开始的布局文件开始说起吧。
说到布局文件首先要说的就是各种Layout了,以我现在的所知,Layout有五大类,下面将进行一些简单的介绍,毕竟我们还没有将这几种Layout全部掌握。这阵子,使用的最多的就是LinearLayout的布局方式了,其它的暂时没有使用过,所以我就只着重的说一下LinearLayout。
这种布局方式是最简单的一种布局了,以行或者列的方式来添加控件,每一行或者每一列只能添加一个控件。在LinearLayout中有一个重要的属性gravity,这个属性用来指定组件内容的对齐方式,使用的方式也很多样化。

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"> </LinearLayout>

布局之后就是各种各样的控件了,正是因为这些控件,我们才能和手机有一个良好的交互的界面。这段时间里使用的最多的就是TextView、EditView、Button、RadioButton、CheckBox了。这些控件每一个都有其特定的用法,从而为用户处理一些其需要处理的事情。
布局做好之后就是为程序所想要实现的功能进行编码,这部分才是最重要的。前面一些定义组件,获取组件什么的就不说了。
但是值得注意的是,在获取控件对象之后就类型的强制转换时要注意类型的对应,比如下面的代码是正确的:

private EditText et_name; et_name = (EditText) findViewById(R.id.name);

而这样的代码是错误的:

private EditText et_name; et_name = (TextView) findViewById(R.id.name);

这是因为,声明的类型和需要转换的类型不一致,在布局文件中对应的组件可能和转换的类型也不一致,这一点要格外的注意,否则就会出错的。
下面就要按照各种功能的需求去写功能实现所需要的代码了,在这段时间里接触的最多的就是重写AppCompatActivit类下面的各种方法,因为我们所建立的Activity所属的类是继承自AppCompatActivit类,这个类提供了各种各样处理事件的方法。每次都自动生成重写下面的代码:

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}

在没有触发其它响应事件的时候,程序也会从这里开始运行。
在这段时间的学习里用的最多的就是对按钮进行的事件监听:

Button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {}});

这个监听事件就是当Button按钮被点击的时候才会触发的,相应的,如果在里面写一些事件处理的代码,那么这个时候就会开始对事件进行处理,直至这个方法的结束。
然后学的也是各种各样的监听事件,当然这些事件都要进行重写,才能达到我们自己想要的功能。
屏幕触控事件:当屏幕被点击的时候就会触发这个方法

@Overridepublic boolean onTouchEvent(MotionEvent event) {return super.onTouchEvent(event);}

当然还有其它的很多的监听事件,这里就不一一写出了。
然后就学习了一些关于Menu的知识,说实话,这一部分我还学的有点模糊,就是只是按照代码机械的去敲,感觉自己还是没有真正的理解这部分的知识。
在做菜单的时候,有多种方法,可以在Activity里直接把菜单写出来,也可以在Layout里写一个菜单的布局文件,只是后者需要在Activity中进行菜单的加载。下面是选项菜单的部分代码:

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.menu,menu);return true;}

这样的方式就是加载写在XML布局文件的方式来加载出菜单,使应用程序能够显示出菜单。还有给菜单项注册事件,下面的代码里对菜单项被点击时就行了一些简单的事件响应,并进行了一些简单的处理。

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()){case R.id.item_info_maintain:Toast.makeText(this,item.getTitle().toString(),Toast.LENGTH_SHORT).show();break;case R.id.item_about:break;case R.id.item_exit:break;}return super.onOptionsItemSelected(item);}

再就是上下文菜单,上下文菜单的加载方式有点特殊,那就是必须在onCreate方法中进行注册,并且是给相应的对象进行注册,否则的话就没有任何效果,这是写了一个最简单的上下文菜单:

@Overridepublic void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, view, menuInfo);switch(view.getId()){case R.id.name:menu.add(0,100,0,"选择");break;}}

然后在onCreate方法中进行注册:

this.registerForContextMenu(et_name);//将上下文菜单注册到姓名的输入框

这里我是给一个EditText进行注册的,但是并没有进行事件的处理,所以写的很简单。
然后又学到了对话框Dialog,其实我个人并不喜欢称这个为“对话框”,因为以前学过易语言,我还是喜欢沿袭当时的习惯,称这个为“信息框”,只是易语言里的信息框没这么多功能而已。,这里就不过多的提了。对话框呢,能够处理的事件还是挺多的。我们只是简单的接触了一下AlertDialog,还没有进行深入的应用学习,我也没有进行深入的探索,这周找个时间需要弄一下。下面呢就是在选项菜单的基础上写了一个AlertDialog,由于这个AlertDialog功能比较简单,而且其它附加的代码又比较长,所以就不把全部的代码贴出来了。

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// 1:创建一个普通的DialogAlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);switch (item.getItemId()){case R.id.item_info_maintain:Toast.makeText(this,item.getTitle().toString(),Toast.LENGTH_SHORT).show();break;case R.id.item_about:// 2:给builder设置值builder.setTitle("关于");builder.setMessage("版本号:1.0");// 3:创建并显示builder.create().show();break;case R.id.item_exit:builder.setTitle("提示");builder.setMessage("点击确定退出!");builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {//关闭dialogdialog.dismiss();MainActivity.this.finish();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.setNeutralButton("没啥事",null);builder.create().show();break;}return super.onOptionsItemSelected(item);}

上面的这些代码里,其实是写了一个普通的带文本的对话框和一个带有三个按钮的对话框,从上面的代码中也能看出这两个对话框并没有实现什么厉害的功能,所以就不过多的解释了。另外的事AlertDialog中可以按照上面的方法显示文本和按钮,也可以放一些CheckBox和Radio以及ListView,以用来处理不同的事件。
至于Notification,好像还没有学习到吧,我课下自己也没有去看,所以就不说了。
大致的说了一下这一个月来学习的东西,然后也做了几个没什么实用性的小程序,这其中也碰到过一些问题,不过都靠百度给解决了,所以那些无法完成的问题现在还没遇到过,毕竟学的很少。这段时间的学习中,我也发现了一些自己在Java上的不足之处,比如说对一些基本概念的不清晰,还有一些基本知识的忘却,都在提醒我去年学的Java知识已经忘掉很多了,所以接下来还是要多花点时间放在Java上,毕竟没有良好的Java基础,Android开发是做不好的。

转载于:https://www.cnblogs.com/wang-Jeft/p/6623313.html

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的Android--近来学习总结(2017/3/27)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。