![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android开发技术
菜菜魁
fighting!
展开
-
android6.0+动态权限申请demo
Android中所有的危险权限,一共有9组24个权限。使用这些权限时,必须要进行申请。在android6.0以前可以直接修改AndroidManifest.xml文件,在其中静态生命权限。但是android6.0以后,为保障用户的安全和隐私,android要求开发者动态申请权限。下面给出危险权限表,用作以后参考:下面开始展示如何进行动态权限申请,以获得打电话权限为例:第一步,...原创 2020-04-24 19:15:30 · 609 阅读 · 0 评论 -
使用LitePal操作SQLite数据库(增删查改)
二话不说,先吹一波LitePal。LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)模式,并将我们平时开发常用的一些数据库功能进行封装,使得不用编写一行SQL语句就可以 完成各种建表和增删查改操作。我们使用的编译语言是面向对象语言,而使用的数据库则是关系数据库,那么面向对象的语言和面向关系的数据库之间建立一种映射关系,它使得我们用面向对象的思维来操作数据库,...原创 2020-04-24 11:57:53 · 1845 阅读 · 0 评论 -
adb查看android虚拟机的数据库
adb是Android SDK中自带的一个调试工具,使用这个工具可以直接对连接在电脑上的手机或者模拟器进行调试操作。它存放在sdk里的platform-tools目录下,如果想在命令行中使用这个工具,需要先把它的路径配置到环境中。 首先我么先找到自己sdk的目录,点击File->Settings。在上面直接搜sdk,就能找到如下图,箭头所指即为sdk路径,platform-...原创 2020-04-24 10:55:24 · 1894 阅读 · 0 评论 -
SharedPreferences存储/读取数据
SharedPreferences是通过键值对的方式来存储数据的。要想使用SharedPreferences来存储或者读取数据,首先要获得SharedPreferences对象。Android主要提供了3种方法用于得到SharedPreferences对象: 1.Context类中的getSharedPreferences()方法 此方法接受两个参数,第一个是指定Sha...原创 2020-04-23 10:10:10 · 3458 阅读 · 0 评论 -
Android写入/读出文件demo
demo之前先做一下说明: Context类中提供的openFileOutput()方法,可以讲述数据存储到指定文件中。该方法共接收两个参数,第一个为文件名,注意这里指定的文件名不可以包含路径,因为所有的文件都是默认存储到/data/data/<packagename>/files/目录下的。第二个参数时文件的操作模式,主要有两个模式。第一个模式为MODE_PRIVA...原创 2020-04-22 18:39:41 · 466 阅读 · 0 评论 -
监听网络变化(android动态注册广播接收器)
动态注册的广播可以自由的控制注册与注销,在activity中定义内部类还可以实现更改ui。但是必须在启动程序之后才能接收到广播。如果要想实现在程序未启动的情况下就能接收广播,需要使用静态注册。 第一步,新建一个BroadcastTest项目,然后修改MainActivity中的代码:public class MainActivity extends AppCompatAct...原创 2020-04-22 11:41:04 · 1665 阅读 · 0 评论 -
标准广播与有序广播
标准广播:一种完全异步执行的广播,在广播发出去之后,所有的接收器几乎都会在同一时刻接受到这条广播消息,因此它们之间没有任何顺序可言。优点:效率高。缺点:无法截断。 有序广播:一种同步执行的广播,在广播发出之后,同一时刻只有会有一个广播接收器能够接受到这条消息广播,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。优点,可以截断。缺点:效率低。 标准广播的使用:...原创 2020-04-22 10:42:28 · 1095 阅读 · 0 评论 -
实现app开机自启(android静态注册广播接收器)
动态注册的广播可以自由的控制注册与注销,在activity中定义内部类还可以实现更改ui。但是必须在启动程序之后才能接收到广播。如果要想实现在程序未启动的情况下就能接收广播,需要使用静态注册。 首先,我们先创建一个广播接收器。右击mainActivity所在的文件夹->New->Other->Broadcast Receiver。会出现一个创建界面。我们将文件命...原创 2020-04-22 10:12:11 · 1693 阅读 · 1 评论 -
Android添加静态/动态碎片
碎片(Fragment)是一种可以嵌入到活动中的UI片段,它能让程序更加合理和充分地利用屏幕的空间,因而在平板上的应用的非常广泛。和活动有许多地方相像,同样可以包含布局,同样有自己的生命周期。(个人学习尚浅,未发现碎片优势,碎片嵌套的效果活动嵌套都可实现,活动嵌套请参考”活动嵌套“)。下面用一个项目描述碎片的动态及静态添加。1.创建左侧碎片布局left_fragment.xml,该布局用...原创 2020-04-18 22:01:14 · 440 阅读 · 1 评论 -
RecyclerView控件讲解(实现纵向/横向滚动以及瀑布流布局)
与ListView对比优势: 1.运行效率更高。 2.能实现横向滚动与瀑布流布局。 官方更加推荐Recycler控件,但因为后期加入又要使所有版本的Android都能使用,所以把它放入了support库当中,所以使用的第一步,是在项目的build.gradle中添加相应的依赖库。打开app/build.gradle文件,在dependencies中添加implement...原创 2020-02-18 12:25:50 · 1282 阅读 · 0 评论 -
创建控件与引入布局/控件
对于创建控件,我们举一个创建标题栏的例子。首先创建一个标题栏布局title.xml,代码如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width=...原创 2020-02-14 11:18:41 · 189 阅读 · 0 评论 -
Intent返回数据给上一活动
创建两个活动,第一个活动名为FirstActivity,第二个活动为SecondActivity,在两个活动的View界面创建按钮,第一个活动按钮id为button_1,第二个活动按钮id为button_2。FirstActivity中代码如下:public class FirstActivity extends AppCompatActivity { @Override ...原创 2020-01-31 18:11:38 · 246 阅读 · 0 评论 -
Intent传递数据给下一活动
Intent中提供了一系列putExtra()方法的重载,可以把我们想传递的数据暂存在Intent中,启动另一个活动后,只需要把这些数据再从Intent中取出即可。方法如下:创建两个活动,第一个活动名为FirstActivity,第二个活动为SecondActivity,在第一个活动的View界面创建按钮,id为button_1。在FirstActivity编写如下代码:Button b...原创 2020-01-31 17:59:24 · 213 阅读 · 0 评论 -
ImageView读取手机图片
picture = (ImageView)findViewById(R.id.picture);//设置imageView的图片监听器picture.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { selectPic(); ...原创 2020-01-15 22:05:53 · 597 阅读 · 0 评论 -
Android从服务器下载文件并存储
public void Download(final String path){ //将用户信息传入服务器 new Thread(){ @Override public void run() { super.run(); try { ...原创 2020-01-01 17:42:08 · 1151 阅读 · 0 评论 -
Android无法在SD卡写入文件(Android6.0+需要动态申请)
没错就是这么坑,也不报错花了一下午。1.AndroidMainfest.xml<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAG...原创 2020-01-01 17:36:50 · 895 阅读 · 0 评论 -
Android如何把一个活动设置成主活动
在AndroidManifest.xml中找到需要设置的Activity。在该<activity></activity>中插入<intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android...原创 2019-12-29 17:34:18 · 2515 阅读 · 0 评论 -
HTTP数据传输中GET与POST区别
Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求Get类似数据库查询功能一样,数据不会被修改Get请求的参数会跟在url后进行传递,请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE6...原创 2019-12-27 16:31:14 · 334 阅读 · 0 评论 -
Android通过HttpURLConnection连接服务器并进行数据传输
demo包含GET及POST数据传输方法,将数据以键值对的形式存储到JSONobject里面,与服务器进行数据交互。1.申请网络权限,在AndroidManifest.xml加入<uses-permission android:name="android.permission.INTERNET"/>2.编写服务器连接与交互代码public class MainAct...原创 2019-12-27 15:33:43 · 1016 阅读 · 0 评论 -
ListView控件的使用(Android设置列表)
要学习ListView,首先应该掌握适配器,那么什么是适配器呢?适配器就是在安卓中,把数据变成符合界面风格的形式,并且通过ListView显示出来。也就是说适配器是数据和界面之间的桥梁。今天我们主要讲三种适配器:1.ArrayAdapter:简单的数据映射,只包含文字数据。2.SimpleAdapter:文字和图片映射,内容相对丰富了一丢丢。3.自定义的Adapter:无所不能...原创 2018-11-11 14:27:13 · 6884 阅读 · 0 评论 -
显式/隐式Intent实现活动的跳转
创建两个活动,第一个活动名为FirstActivity,第二个活动为SecondActivity,在第一个活动的View界面创建按钮,id为button_1。显示启动:Button button1 = (Button) findViewById(R.id.button_1);button1.setOnClickListener(new View.OnClickListener() {...原创 2018-10-16 19:57:21 · 1039 阅读 · 0 评论 -
Menu控件(Android设置选项菜单和快捷菜单)
首先区分一下什么是选项菜单,什么是快捷菜单。选项菜单是针对整个页面布局的,在这个页面布局的右上方,点击之后可以会展开选项,供大家选择。快捷菜单正如其名,十分方便,因为他可以依赖于任何控件,定义之后只需要长摁此控件,菜单列表就会出现,如右:定义选项菜单和快捷菜单都是有两种方法,一种是直接在activity文件中代码书写,这种方法相对比较繁琐,但是灵活性更高。还有一种是通过菜单布局文件直接...原创 2018-11-23 17:45:19 · 6224 阅读 · 0 评论 -
AlertDialog控件的使用(android设置系统自带或自定义的提示框)
AlertDialog是设置提示框的控件,一般都是简单的提示您是否要xxxx,下面一个确定,或者取消。下面我们介绍一些系统提供的比较复杂的提示方法。还有如何自定义设置提示内容。1.一般的提示里面只需要自己设置提示标题,提示内容,还有点击确定时执行什么操作,点击取消时执行什么操作。很基础的应用,下面给大家演示一个是否要退出程序。//一般提示 Button btn1=(B...原创 2018-11-19 13:57:15 · 988 阅读 · 0 评论 -
Android布局控件(包含线性布局,框架布局,表格布局,相对布局,约束布局)
Android提供了许多布局空间,对于不同的格式需求选择不同的布局控件,可以大大简化代码操作。下面为大家介绍一下以下经常用到的五种布局。对了,补充一下,往常Android只有约束布局可以直接在Design页面拖动,现在都可以了。不过不推荐。1.linear_layout(线性布局)线性布局正如其名,他是呈线性分布的布局。只能控制水平或者垂直方向排布控件。可以用于设置登陆界面等简单排布的...原创 2018-11-21 21:03:34 · 2489 阅读 · 0 评论 -
EditText控件的使用(Android设置输入框)
android:hint="这里提示你该输入什么内容"android:textColorHint="设置提示内容颜色"android:maxLength="输入最长的长度"android:maxLines="输入最长的行数"android:minLength="输入最短的长度"andrioid:inputType="输入数据类型,便于输入法显示适用的键盘" android:in...原创 2018-10-16 21:24:14 · 2005 阅读 · 0 评论 -
match_parent,fill_parent和wrap_content的区别
match_parent是强制使它的大小等于父控件;fill_parent也是充满父控件。在Android2.2以后是一样的,但是为了兼容低版本可以采用fill_parent。wrap_content内容多大它就多大,适应内容。...原创 2018-10-16 21:19:46 · 294 阅读 · 0 评论 -
Android程序调试(LogCat)
首先找到LogCat,点击Debug会发现五个单词,如下图:分别代表5个不同等级的日志信息:V:详细信息D:调试信息I:通告信息W:警告信息E:错误信息其中越往下等级越高,当选定等级之后,只会显示当前以及比当前等级更高的log信息。同时在右下角可以选择自定义筛选,如下图:点击进入:怎么输出显示呢?log.v(TAG(tag名),“要输出的信息...原创 2018-10-16 20:34:44 · 1121 阅读 · 0 评论 -
快速加入生命周期回调函数
点击activity,进入页面之后,在主类内部点击右键,选择Generate,之后选择Override Methods:进入按住Ctrl键,可以进行多选,选择自己需要的回调函数原创 2018-10-16 20:07:09 · 306 阅读 · 0 评论 -
Android中使用Toast提示信息
Toast用法: 通过静态方法makeText()创建出一个Toast对象,然后调用show()显示。其中makeText()方法需要传入3个参数。 Context:也就是Toast要求的上下文; 显示的文本内容; Toast的显示时长,Toast.LENGTH_SHORT表示短时间,Toast.LENGTH_LONG表示长时间。设置监听器监听事件...原创 2018-10-16 19:32:53 · 2816 阅读 · 0 评论 -
ProgressBar控件的使用(Android设置条形,环形进度条)
ProgressBar是进度条,今天学习两种,一种是水平进度条,可以显示进度,一种是环形进度条,不可以显示进度。//设置进度条类型style="?android:attr/progressBarStyleHorizontal" //水平直线进度条//(什么都不写是中等环形进度条)style="?android:attr/progressBarStyleLarge" //大...原创 2018-10-19 00:24:53 · 4100 阅读 · 0 评论 -
RadioButton控件的使用(Android设置单选按钮)
举个例子,设置男女的RadioButton。<RadioGroup //先设置RadioGroup把一组Radio放在一起 android:id="@+id/sex" android:layout_width="match_parent" android:layout_height="wrap_c...原创 2018-10-18 23:19:48 · 1848 阅读 · 0 评论 -
CheckBox控件的使用(Android设置复选框)
设置大小位置文本之类的跟EditText,TextView, Button之类的没有什么区别,但是对于点击的监听和button有所不同,代码如下://为第一个复选按钮建立单击事件监听器chk1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ...原创 2018-10-18 21:01:02 · 843 阅读 · 0 评论 -
TextView控件的使用(Android设置文本显示格式)
android:textColor="文本颜色"android:textSize="文本大小..sp"android:background="背景颜色 || 图片地址"android:text="文本内容"//设置文本位置android:gravity="center_vertical" //设置垂直居中android:gravity="right" //设置居右and原创 2018-10-17 14:38:54 · 4785 阅读 · 0 评论 -
ToggleButton控件的使用(Android设置开关按钮)
android:textOn="打开开关的文字标识"android:textOff="关闭开关的文字标识"这个按钮主要操作在于activity,他的点击监听不同于一般的button。举个例子,点击按钮进入图片切换:private ImageView imageView;private ToggleButton toggleButton;@Overrideprotected...原创 2018-10-17 15:44:42 · 1561 阅读 · 0 评论 -
ImageView控件(Android调整图片显示格式)
ImageView是一个可以显示任何图片资源的控件,同时可以调整图片的像素,显示的位置,图片的滚动等问题。ImageView有很多常用的属性,下面会一一解释。先看布局文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/r...原创 2018-11-11 22:27:38 · 5105 阅读 · 0 评论 -
AutoTextView控件的使用(Android设置输入提示)
大家在访问浏览器的时候,要搜索的东西只输入一半不到的时候,系统会给很多提示。如下:这个就是靠AutoTextView实现的。它会自动检索你所有的数据中满足条件的并进行提示。具体怎么操作呢?我们举个简单的例子。首先,先简单的创建个垂直线性布局,把AutoTextView放进去。代码如下:<?xml version="1.0" encoding="utf-8"?>&...原创 2018-11-11 19:51:27 · 1345 阅读 · 0 评论 -
如何为TextView添加边框
首先大家需要知道一个概念:android:background的值是一个xml文件。这就意味着如果我们想要一个框,就要定义一个xml布局文件,然后把布局文件的内容赋给TextView的background属性。操作步骤如下:第一步:定义xml文件,命名为setbar_bg.xml,并写入如下代码:<?xml version="1.0" encoding="UTF-8"?>...原创 2018-11-13 20:22:36 · 2020 阅读 · 0 评论 -
Spinner控件的使用(设置下拉列表)
Spinner是下拉列表控件,如同ListView一样,需要适配器把数据转化成能在界面布局中显示的形式,其实大部分相同。有意思的是他会需要多设置一下,哪一部分呢?Spinner总共分成两部分,一部分是已经显示的部分,还有一部分是下拉列表。两种的显示都可以自定义,下面为大家展示一下代码:第一步:定义带有Spinner控件的布局<?xml version="1.0" encoding=...原创 2018-11-11 16:08:12 · 9975 阅读 · 0 评论 -
DateTime控件的使用(Android设置时间)
首先在xml文件中如何设置文件的显示呢?代码如下://设置年月日<DatePicker android:id="@+id/dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:calendarViewShown="true" //...原创 2018-11-11 11:19:56 · 2219 阅读 · 0 评论 -
SeekBar控件的使用(Android设置可以拖动的进度条)
SeekBar和ProgressBar同样都是进度条控件,但是SeekBar可以人为拖动改变控件进度。他的布局文件设置和ProgressBar差不多,但是activity操作有所不同。他可以监听开始拖动,拖动时,拖动停止三种状态,可以在这三种情况下设置操作。代码如下:package cn.edu.qtech.csc.lcb.seekbardemo;import android.app.A...原创 2018-11-07 20:17:54 · 1271 阅读 · 0 评论