Android
Will Wang'
这个作者很懒,什么都没留下…
展开
-
UI基本控件
可见属性设置所有空间都具有可见属性,可选值有三种:visible,invisible,gone。在布局文件中设置android:visibility属性,在代码中,任何空间都可以用setVisibility(View.GONE)方法进行设置。invisible和gone的区别invisible表示控件不可见,但是控件仍然占据着位置和大小,可以理解为控件只是变为不可见gone表示控件不仅不可见原创 2016-03-15 21:24:25 · 295 阅读 · 0 评论 -
活动的启动方式
四种启动方式修改启动方式的方法:在androidManife文件中对activity修改launchMode属性即可standad默认启动方式默认启动方式缺点,加入在一个活动中设置一个按钮,点击按钮就在启动以此这个活动,点击几次在活动栈中就有几个活动,推出就要点击若干次才能推出该模式的示意图 singleTop当活动的启动模式指定为当前模式时,在启动活动时,如果发现返回栈的栈顶已经是该活动原创 2016-03-15 12:43:01 · 503 阅读 · 0 评论 -
自定义控件--标题栏
自定义标题栏首先要创建一个标题栏的布局文件,将标题栏的样式在布局中写好 如果标题栏没有按键响应,仅仅是布局显示的话,只需要在对应活动的布局文件中添加响应代码如下如果标题栏有按键响应的话,就需要在java代码中进行相关的设置相应动作 -而后在需要这个自定义控件的布局中,只需要像常规控件一样引用该自定义控件即可。 -效果示例原创 2016-03-16 22:58:25 · 272 阅读 · 0 评论 -
Intent
Intent六大属性所有Activity都必须在androidManife文件中进行注册,否则无法运行显式Intentactivity service 发送广播 使用Intent的Component属性使用显示Intent开启新的线程,其中在Intent中需要指定当前的Activity.this作为上下文,而后传入要开启的新的线程.class,在startActivity(Intent)就可以显原创 2016-03-15 11:36:13 · 272 阅读 · 0 评论 -
UI控件--AutoCompleteTextView
AutoCompleteTextView带有提示的搜索栏首先在布局文件中添加该控件<android.support.v7.widget.AppCompatAutoCompleteTextView android:layout_width="match_parent" android:layout_height="wrap_content" and原创 2016-03-18 15:03:11 · 1067 阅读 · 0 评论 -
UI控件--GridView
GridView的用法与ListView的用法相同,都需要使用Adapter适配器。GridView与ListView控件唯一的不同便是显示形式不同,GridView是以行*列的形式展现的,使多条数据在一行。我们手机上的相册一个很好的例子。首先在总布局中定义一个GridView控件,注意定义numCulumns属性,这是用于定义列数的属性<LinearLayout xmlns:andro原创 2016-03-18 15:56:34 · 286 阅读 · 0 评论 -
Android多线程--Handler
异步消息处理机制android中不支持在子线程中修改主线程的UI,这样会导致线程不安全,这是就需要用到android中的异步消息处理机制。Message是在线程之间传递的消息,可以在内部携带少量的信息,what、arg1和arg2用于存放整形数据,obj属性用于携带一个Object对象。Handler就是处理者的意思,主要用于处理和发送消息,发送消息一般用Handler的sendMessa原创 2016-03-19 11:38:31 · 341 阅读 · 0 评论 -
UI控件--Toast
在Toast中添加图片 - 效果图如下 - 自定义Toast样式首先,新建一个自定义Toast的布局文件,对自定义布局进行设置 然后,在代码中进行逻辑设置 -效果图如下原创 2016-03-31 17:33:24 · 493 阅读 · 0 评论 -
Intent传递序列化数据
Serializable序列化数据这是一种比较简单的序列化,只需要将要序列化的类实现Serializable接口,不用再执行其他操作,在Intent中放入序列化数据即可序列化数据public class Student implements Serializable{ private String name; private String age; private St原创 2016-03-20 21:09:20 · 1343 阅读 · 0 评论 -
横竖屏的生命周期
横竖屏的生命周期原创 2016-03-20 21:20:05 · 270 阅读 · 0 评论 -
布局方式
LinearLayout线性布局layout_gravity属性是表示的当前控件在布局中的位置gravity属性表示的是文字在空间中的对齐方式layout_weight属性允许使用比例方式来指定控件的大小,划分的是未分配的空间,因此指定控件宽度为0,可以平均比例分配空间宽度padding内部离开 margin外部离开 gravity View本身属性,代表的是该View内容的放置位置原创 2016-03-16 17:28:34 · 305 阅读 · 0 评论 -
UI控件--AlertDialog
最简单的Alertdialog效果图 代码如下: AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("请注意!!!"); builder.setIcon(R.mipmap.ic_launcher);原创 2016-04-02 20:44:55 · 403 阅读 · 0 评论 -
UI控件--PopWindow
PopWindow和AlertDialog的使用非常的相似效果图如下: 自定义布局如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:原创 2016-04-02 20:54:03 · 527 阅读 · 0 评论 -
UI控件--上下文Menu
一般的菜单选项的编写,请参见我的这篇博客上下文菜单用于长点击时间,比如在uc浏览器,我们长按一串文字时,系统会提示我们复制,搜索啥的功能,这个弹出菜单就是上下文菜单。效果图如下 逻辑代码如下private TextView textView; protected void onCreate(Bundle savedInstanceState) { super.onCre原创 2016-04-02 21:06:28 · 417 阅读 · 0 评论 -
UI控件--TextView
设置文本链接将文本中的电话号码,Email,URL等设置为链接。对这个的设置叶有两种方式:一种是在layout中的xml文件中进行添加;另一种是在Activity的onCreate方法中添加代码。xml文件设置链接设置可以设置为:all, map, none, email, phone以及web。在这我们以设置为phone为例。<TextView android:layout_w原创 2016-03-17 10:13:17 · 265 阅读 · 0 评论 -
Android系统架构
android系统架构图 1.linux内核,包含各种驱动,内存管理,安全机制,电源管理,显示驱动,网络协议栈等等。 2.C/C++函数库包含sqlite,sgl,ssl,media framework等等 3.应用程序框架 4.应用程序架构详解2.1、Linux Kernel Android基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Lin原创 2016-03-11 09:01:35 · 477 阅读 · 0 评论 -
数据存储--SQLite创建数据库
SQLite简介SQLite是安卓系统中内置的轻量级的数据库,可以应用于数据的存储,比之文件存储和SharePreference存储数据,具有更加的灵活性,存储量更大,数据也更加复杂。创建数据库android为了然我们更加方便的管理数据库,专门提供了一个SQLiteOpenHelper帮助类,借助这个类就可以非常简单地对数据库进行创建和升级。SQLiteOpenHelper中有两个非常重要的原创 2016-04-04 17:03:01 · 540 阅读 · 0 评论 -
数据存储--SQLite增删改查
增数据库的添加数据,SQLiteDatabase提供了一个insert()方法,专门用于添加数据。 contentValues.put("name","张三"); contentValues.put("age",18); contentValues.put("clazz","计算机1301班");原创 2016-04-04 17:37:43 · 518 阅读 · 0 评论 -
数据存储--SQLite事务
数据库的事务应用在现实中很多,比如银行中,当你转账的时候,银行的数据库会将你的账户余额减去你的转账的数额,然后同时对目标账号余额进行添加相应的数额。这个操作必须同时成功,若失败,就同时都失败,这里就应用了事务事务具有原子性,要么都成功,要么全失败。 db.beginTransaction(); db.delete("book",nul原创 2016-04-04 18:25:23 · 351 阅读 · 0 评论 -
实践--升级数据库最佳写法
当我们第一次建表的时候这样写public class MyDatabaseHelper extends SQLiteOpenHelper { private Context context; public static final String CREATE_STUDENT="create table book(id integer primary key autoincremen原创 2016-04-04 19:10:34 · 338 阅读 · 0 评论 -
Android环境搭建
1.使用SDKManager,下载Extrs 全部的tools,还有自己要下载的android版本相应下载sdk plateform,sources for android sdk,再随便下载一个X86架构的就差不多了2.android studio 取消检查更新,bin目录下的idea.properties文件最后一行加此句disable.android.first.run=true3.A原创 2016-03-11 15:14:41 · 206 阅读 · 0 评论 -
四大组件之Content Provider
Content Provider介绍内容提供器主要用于在不同应用之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性。目前,使用内容提供器是android实现跨程序共享数据的标准方式。ContentResolver的基本用法ContentResolver的用法和SQLiteBase非常相似,都是具有增删改查的方法,只不过Conten原创 2016-04-05 19:35:04 · 246 阅读 · 0 评论 -
内置Content Provider
通过内置的内容提供器获取手机的联系人信息布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andr原创 2016-04-05 19:55:22 · 610 阅读 · 0 评论 -
Content Provider实现跨程序数据共享
自定义Content Provider本次项目代码在实践–升级数据库最佳写法这篇博客的基础上增加的。需要自定义Content Provider的代码如下:public class MyDatabaseProvider extends ContentProvider { public static final int BOOK_DIR=0; public static final原创 2016-04-05 23:34:10 · 479 阅读 · 0 评论 -
UI控件--Button(包含了selecter和shape的使用)
selecter的使用Button自定义背景,设置按下后的消失效果首先需要将按钮按下状态和常态下的图片保存在drawable文件中,事先准备如下两个图片 然后需要在drawable中定义btn_bg.xml文件如下<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/原创 2016-03-17 09:56:01 · 781 阅读 · 0 评论 -
Activity生命周期
onCreate()初始化Activity,这个方法会在活动第一次创建的时候被调用。用于给Activity进行初始化。onStart()执行此方法后Activity变为可见状态。onResume()运行此方法后,Activity处于运行状态,用户可以进行交互。此时的Activity一定是处于堆栈的栈顶,正在运行。onPause()通常我们从这个当前Activity进入另一个Activi原创 2016-03-13 21:37:29 · 220 阅读 · 0 评论 -
四大组件
Android四大组件: Activity 活动,代表一个界面 Service 服务,大量的运算,连接网络,后台播放音频 Content Provider 内容提供者,A应用向其它的应用提供一个公开的接口,这个接口用于其它操作A应用的数据库 BroadcastReceiver 广播接收器,收音机(接收广播) 电台(发送广播原创 2016-03-13 21:38:47 · 269 阅读 · 0 评论 -
UI控件--EditText
属性设置最大显示行数 android:maxLines设置默认显示的提示信息 android:hint设置文本框中的输入类型属性 android:inputType关于密码显示的设置将输入的内容转换为*,变为不可辨认 editText= (EditText) findViewById(R.id.editText); butt原创 2016-03-18 09:32:50 · 286 阅读 · 0 评论 -
UI控件--Notification
最简单的NotificationNotification就是程序不是在后台运行的时候,有新的消息需要用户处理的时候,用来让用户看到的一种任务栏的提示信息。最常见的就是QQ消息等。 Notification.Builder builder=new Notification.Builder(this); builder.setSmallI原创 2016-04-06 16:49:44 · 305 阅读 · 0 评论 -
UI控件-RadioGroup
单选按钮RadioGroup和RadioButton是一起使用的,一个RadioGroup中的各个选项是一个单选的组合<RadioGroup android:id="@+id/radioGroup" android:layout_width="match_parent" android:layout_height="wrap_content">原创 2016-03-24 23:41:37 · 320 阅读 · 0 评论 -
UI控件--CheckBox
应用于密码的显示与隐藏布局文件中<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码。。。" android:inputType="textPassword" and原创 2016-03-18 11:45:38 · 322 阅读 · 0 评论 -
实践--Notification实现Music状态栏
在使用手机的一些音乐软件的时候,当我们播放音乐的时候,音乐软件都会在手机的状态栏生成一个快捷的工具栏,会显示当前播放的歌曲信息,以及对歌曲的播放/暂停,上一曲,下一曲等操作。我们就是用Notification实现这个工具栏效果图布局文件的简单实现 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://s原创 2016-04-07 17:31:28 · 783 阅读 · 0 评论 -
UI控件--ListView
简单的ListView用法ArrayAdapterArrayAdapter是只包含字符串的一个简单适配器首先在在布局文件中添加ListView控件然后在代码实例化适配器,同时指定listview中内容的布局方式和要显示的内容,最后为listview添加监听事件public class MainActivity extends AppCompatActivity { private Li原创 2016-03-16 23:13:59 · 360 阅读 · 0 评论 -
实践--应用广播收发短信
接收短信接收短信的Action为android.provider.Telephony.SMS_RECEIVEDpublic class MainActivity extends AppCompatActivity { private TextView textView_msgNum,textView_msgContent; private MyMsgReceiver myMsgRe原创 2016-04-07 18:00:48 · 427 阅读 · 0 评论 -
Intent 传值和 Bundle传值的区别
转自:http://blog.csdn.net/yanzi1225627/article/details/7802819举个例子 我现在要从A界面 跳转到B界面或者C界面 这样的话 我就需要写2个Intent 如果你还要涉及的传值的话 你的Intent就要写两遍添加值的方法 那么 如果我用1个Bundle 直接把值先存里边 然后再存到Intent中 不就更简洁吗? 另外一个例子 如果我转载 2016-03-15 12:25:54 · 241 阅读 · 0 评论 -
四大组件之BroadcastReceiver
广播的两种方式标准广播一种完全异步执行的广播,在广播发出之后,所有的广播接收器都会在同一时刻接收到这条广播消息,他们之间没有先后顺序,这样的效率比较高,但同时也是无法被截断的。 有序广播是一种同步执行的广播,在广播发出之后,同一时刻只有一个广播接收器能够接收到这条广播消息,当这个广播接收器重的逻辑执行完毕之后,广播接收器才会继续传递,。所以此时的广播接收器是有顺序的,优先级高的广播接收器就可以先原创 2016-03-26 18:09:56 · 366 阅读 · 0 评论 -
Broadcast--自定义广播
发送自定义广播发送标准广播发送自定义的标准广播很简单,只需要将在注册广播的时候将Action自定义即可首先自定义我们的广播接收器public class MyBroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) {原创 2016-03-26 19:20:38 · 405 阅读 · 0 评论 -
Broadcast--本地广播
本地广播android中本地广播机制,只允许广播在本程序中发送和接收,这样当在广播中包含信息时,也不会有信息的泄露的危险。本地广播的用法:使用一个LocalBroadcastManager来对广播进行管理,并提供了广播的发送和接收的方法。首先自定义广播接收器public class MyLocalReceiver extends BroadcastReceiver { @Overri原创 2016-03-26 19:56:10 · 337 阅读 · 0 评论 -
数据存储--文件存储
文件存储文件存储是android中最简单的数据存储手段,,其中所用到的核心技术就是Content类中提供的openFileOutput和openFileInput方法,之后就是使用java中各种输入输出流来进行读写操作这种方式存储的数据/data/data/<包名>/files目录下openFileOutput(参数1,参数2)参数1为你要存储数据的文件名称参数2为存储的模式,有两种MOD原创 2016-03-27 10:40:33 · 295 阅读 · 0 评论 -
数据存储--SharePreferences
获取SharePreferences对象方法Content类中的getSharedPreferences(参数1,参数2),第一个参数用于指定存储文件的名称,第二个参数用于指定操作模式,MODE_PRIVATE,默认的操作方式,表示只有当前的应用程序才能对这个文件进行进行读写。MODE_MULTI_PROCESS则一般用于多个进程中对同一个文件进行读写的情况。Activity类中的getShar原创 2016-03-27 11:53:54 · 328 阅读 · 0 评论