Andriod
文章平均质量分 61
星辞归野
这个作者很懒,什么都没留下…
展开
-
Android导入已有Sqlite数据库
在res文件夹下创建文件夹raw,在raw中放入要导入的sqlite数据库创建java类命名为DBManager,编写以下代码:public class DBManager { private final int BUFFER_SIZE = 400000; //缓存大小 public static final String DB_NAME = "wisdom.db"; //保存的数据库文件名 public static final String PACKAGE_NAME = "原创 2022-01-18 21:15:19 · 3172 阅读 · 1 评论 -
使用LitePal建立表关联、使用LitePal聚合函数
文章目录一、四张表简介二、代码实现1. 创建独立的四个类2. 建立关联2.1 一对一关系2.2 多对一关系2.2 多对多关系3. 添加映射三、验证前篇:使用LitePal操作数据库详细介绍参考:Android数据库高手秘籍(四)——使用LitePal建立表关联一、四张表简介News表:标题title、内容content、发布时间publishDate、评论数commentCount、id;Comment表:内容content、发布时间publishDate、id;Introduc原创 2022-01-04 22:12:01 · 1515 阅读 · 0 评论 -
本地项目上传到gitee的方法
在gitee中新建仓库输入仓库的名称和介绍后新建仓库点击"克隆/下载",复制此处链接在磁盘中新建一个空白文件夹,右键选择"git bash"输入命令 git clone + 仓库地址(之前复制的链接)仓库成功被拉下来了输入命令 git init 在本地创建新的Git仓库将自己的项目放入仓库目录下进入到notepad文件夹中输入命令git add .输入命令git commit -m’XXXX’XXXX内容随意最后输入命令 git push上传成功...原创 2021-08-04 16:43:15 · 167 阅读 · 0 评论 -
HttpUrl类:通用网络操作工具类
public class HttpUtil { /* 该方法使用HttpURLConnection方法访问网络 给sendHttpRequest方法添加一个HttpCallBackListener参数,并在方法内部开启子线程在子线程中去执行具体的网络操作 */ public static void sendHttpRequest(String address,final HttpCallBackListener listener) { new Thr原创 2021-11-27 15:03:01 · 2871 阅读 · 0 评论 -
使用Http协议访问网络
文章目录1. 使用HttpURLConnection2. 使用OkHttp3. 数据显示4. 解析xml格式数据5. 解析json格式数据首先修改清单文件,使得可以访问http网络//在清单文件中修改代码 <uses-permission android:name="android.permission.INTERNET"></uses-permission> <application android:usesCleartextTraffic原创 2021-11-29 15:01:55 · 524 阅读 · 0 评论 -
链接网络获取数据的方法
传入url地址 public static String doGet(String urlString){ String result=""; String line; StringBuilder stringBuilder=null; BufferedReader bufferedReader=null; //连接网络 HttpURLConnection connection=null;原创 2021-09-21 16:31:56 · 505 阅读 · 0 评论 -
Android多线程异步通信实例
创建两个线程,实现两个相同的耗时任务实现2个窗口同时卖火车票;每个窗口卖100张,卖票速度都是1s/张,最后弹出通知票已卖完。public class MainActivity extends AppCompatActivity { private Button button2; private Handler handler=new Handler(){ @Override public void handleMessage(@NonNull Messa原创 2021-10-12 14:44:52 · 193 阅读 · 0 评论 -
连续两次back退出应用
按键操作理解操作的基本类型down:手指按下up:手指从按键上离开按键操作的顺序:down->down->…->up对按键的任何一个操作,系统都会创建一个KeyEvent对象来对应这个操作按键的长按监听:down之后一定时间还没有up时会触发长按监听回调代码public class MainActivity2 extends AppCompatActivity { private Boolean flag=false; //是否能够退出标识 //将原创 2021-08-18 17:05:06 · 165 阅读 · 0 评论 -
使用Handler实现延迟跳转界面
public class HelloActivity extends AppCompatActivity { private Handler handler=new Handler(){ @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); if (msg.what==1){原创 2021-08-11 15:38:53 · 235 阅读 · 0 评论 -
使用Animation实现界面切换的平移动画
向右平移activiy中,使用overridePendingTransition方法,通过这个方法添加的跳转动画会覆盖掉即将到来的跳转动画效果startActivity(new Intent(MainActivity2.this, MainActivity3.class));overridePendingTransition(R.anim.translate2,R.anim.translate1);translate2.xml<translate xmlns:android="http:.原创 2021-08-11 15:36:18 · 247 阅读 · 0 评论 -
VideoView控件播放视频
VideoView控件的常用方法方法名称setVideoPath()设置要播放的视频文件的位置start()开始或继续播放视频pause()暂停播放视频resume()将视频重新开始播放seekTo()从指定位置开始播放视频isPlaying()判断当前是否在播放视频getDuration()获取载入的视频文件的时长使用流程在布局文件中添加ViewView文件 <VideoView androi原创 2021-06-20 16:00:18 · 927 阅读 · 4 评论 -
实现图片拖动且限制拖动的范围
触屏操作的理解最基本的操作类型:down:手指按下move:手指在屏幕上移动up手指从屏幕上离开触屏操作的顺序:down->move->move->…->up对屏幕的任何一个操作,系统都会创建一个MotionEvent对象来对应这个操作相关APIMotionEvent:触屏事件int ACTION_DOWN=0 代表downint ACTION_MOVE=2 代表moveint ACTION_UP=1 代表upgetAction():得到事件类型值原创 2021-08-18 16:01:32 · 461 阅读 · 0 评论 -
补间动画和逐帧动画
补间动画补间(Tween)动画通过对View进行一系列的图形变换来实现动画效果,其中图像变换包括平移、缩放、旋转、改变透明度等。补间动画最常用的方式是通过XML文件定义动画。透明度渐变动画(AlphaAnimation)主要通过指定动画开始时View的透明度和动画结束时View的透明度以及动画持续时间来实现属性介绍interpolator控制指定动画的变化速度,可设置的值有:linear(匀速改变)、accelerate(先慢后快)等repeatMode用于指定动画重复原创 2021-06-11 20:03:38 · 1038 阅读 · 0 评论 -
SoundPool类播放音频、案例弹钢琴
SoundPool即音频池,可以同时播放多个短小的音频,而且占用资源少,其适合在应用程序中播放按键音或者消息提示音等。SoundPool类常用方法方法名称功能描述load()加载音频文件play()播放音频pause(int streamID)根据加载的资源ID,暂停播放音频resume(int streamID)根据加载的资源ID,继续播放暂停的音频资源stop(int streamID)根据加载的资源ID,停止音频资源的播放unload(i原创 2021-06-13 17:46:58 · 605 阅读 · 1 评论 -
使用广播发送通知使界面数据更新
发送广播Intent intent=new Intent("UPDATE");sendBroadcast(intent);接收广播 myReceiver=new MyReceiver(); IntentFilter intentFilter=new IntentFilter(); intentFilter.addAction("UPDATE"); registerReceiver(myReceiver,intentFilter);原创 2021-09-21 16:36:48 · 161 阅读 · 0 评论 -
编写一个程序,实现无序广播的发送和接收
广播接收者的创建广播接收者的注册有两种方式,分别为动态注册和静态注册。动态注册是创建一个广播接收者, 并在Activity中通过代码进行注册。静态注册是创建一个广播接收者,并在清单文件中完成注册。动态注册接收网络变化/*动态广播接收者是否被注销依赖于注册广播的组件例如在Activity中注册了广播接收者,当Activity被销毁时,广播接收者也随之被注销 */public class MainActivity extends AppCompatActivity { private原创 2021-08-06 15:08:07 · 2610 阅读 · 0 评论 -
总结三种方法使用Service实现在后台播放音乐、暂停音乐、停止音乐的功能
文章目录通过startService()方式开启通过bindService开启使用bindService+AIDL开启通过startService()方式开启public class MyService extends Service { private MediaPlayer mediaPlayer; private int startId; public enum Control{ PLAY,PAUSE,STOP } public MySer原创 2021-10-05 14:49:48 · 1206 阅读 · 0 评论 -
申请运行时的权限
Android系统规定,程序访问系统的一些关键信息是时,必须申请权限。根据程序适配Android SDK版本的不同,申请权限为两种方式,分别为静态申请权限和动态申请权限静态申请权限适用于 Android SDK6.0以下的版本,在清单文件AndroidManifest.xml的 < manifest > 节点中声明需要申请的权限,以申请SD卡写权限为例,代码为:<uses-permission android:name="android.permission.WRITE_EXTER原创 2021-09-07 20:34:40 · 447 阅读 · 0 评论 -
通过ContentResolver查询其他程序数据的步骤
通过pause()方法解析Uri首先通过Uri的parse()方法将字符串Uri解析为Uri类型的对象,实例代码如下://视频uriUri uri= MediaStore.Video.Media.EXTERNAL_CONTENT_URI;通过query()方法查询数据通过getContentResolver()方法获取ContentResolver对象,调用该对象的query()方法查询数据//获取内容提供者ContentResolver contentResolver = context.原创 2021-09-07 20:50:38 · 955 阅读 · 0 评论 -
使用ContentProvider实现查看系统短信的功能
activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" androi原创 2021-08-05 22:23:18 · 652 阅读 · 0 评论 -
Activity的生命周期
文章目录生命周期状态生命周期方法生命周期状态#mermaid-svg-jNjRLHpfUtHDiZCg .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-jNjRLHpfUtHDiZCg .label text{fill:#333}#mermaid-svg-jNjRLHpfUtHDiZCg .node rect原创 2021-07-31 17:27:15 · 93 阅读 · 0 评论 -
使用LitePal操作数据库
文章目录使用LitePal操作数据库1. 配置LitePal2. 创建和升级数据库3. 使用LitePal对数据进行增删改查添加数据修改数据删除数据查询数据使用LitePal操作数据库1. 配置LitePal在app/build.gradle文件中添加如下内容:dependencies { implementation 'org.litepal.android:core:1.3.2'}接下来配置litepal.xml文件,创建一个assets目录,创建位置如下:在assets目录下原创 2021-11-24 15:38:13 · 2662 阅读 · 0 评论 -
编写一个购物车程序,实现在界面中以列表的形式显示购物车的商品信息,商品信息包括商品名称、价格和数量功能,并能够对购物车中的商品信息进行增删改查
activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_he原创 2021-08-05 11:58:20 · 6406 阅读 · 3 评论 -
使用文件存储方法存入、提取数据;保存和提取账号密码
文件存储文件存储是Android中最基本的一种数据存储方式,其与java中的文件存储类似,都是通过I/O流的形式把数据直接存储到文件中。内部存储使用的是Context提法的openFileOutput()方法和openFileInput()方法,这两个方法能够返回进行读写操作的FileOutputStream和FileInputStream对象。openFileOutput():用于打开应用程序中对应的输出流,将数据存储到指定的文件中openFileInput():用于打开应用程序对应的输入流,读取原创 2021-08-03 16:04:51 · 862 阅读 · 1 评论 -
编写一个用户登录的程序,要求使用SharedPreferences实现数据的存取和删除
编写Layout布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:lay原创 2021-06-20 16:38:13 · 1948 阅读 · 0 评论 -
数据存储
SharedPreferences存储当程序中有一些少量数据需要持久化存储时,可以使用Sharedpreferences类进行存储,例如存储程序的用户名、密码、自定义的参数等。public class MainActivity extends AppCompatActivity { private EditText et_name,et_pwd; //输入框 private Button bt_save,bt_acquire,bt_create,bt_inset,bt_select原创 2021-04-20 10:53:02 · 120 阅读 · 0 评论 -
使用Fragment和ListView、RecyclerV实现动物信息显示
文章目录ListViewactivity_main.xmlfm_left.xmlfm_right.xmllist_item.xmlAnimal.javaFragment_left.javaFragment_right.java效果图RecyclerView效果图ListViewactivity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.andro原创 2021-08-02 17:58:18 · 679 阅读 · 0 评论 -
使用Fragment和ListView、RecyclerView实现川菜菜谱界面
放置两个fragment的布局文件左侧fragment,fm_layout.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="@color/A_group_4" android:layout_width="match_parent" android:layout_h原创 2021-08-01 21:03:49 · 2614 阅读 · 1 评论 -
分别使用RecyclerView和ListView实现Android购物商城
activity_main.xml <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="wrap_content" android:listSelector="#B5DCFA"> </ListView>listview2.xml<?xml version="1.0"原创 2021-04-21 18:23:42 · 4073 阅读 · 0 评论 -
分别使用ListView和RecylerView显示动物图片、名称以及简介信息
文章目录RecylerView放置界面控件创建Item界面编写页面交互代码RecylerView放置界面控件放置一个RecylerView控件,用于显示一个列表。<androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="wrap_content"></原创 2021-07-30 22:15:34 · 2534 阅读 · 1 评论 -
ListView使用
ListView控件简单使用属性属性名称功能描述android:listSelector当条目被点击后,改变条目的颜色android:divider设置分割线的颜色android:dividerHeight设置分割线的高度android:scrollbars设置是否显示滚动条android:lfadingEdge去掉上边和下边的黑色阴影代码如下: <ListView android:id="@+id/lv_demo原创 2021-04-21 17:40:59 · 250 阅读 · 0 评论 -
Calendar类、自定义实现日历控件
文章目录自定义实现日历控件1. Calendar类2. 布局3. 业务处理3. 定制UI4. 事件监听自定义实现日历控件1. Calendar类2. 布局创建calendar_layout.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:padding="20sp" android:orientation="vertical" android:lay原创 2021-11-13 22:31:08 · 1795 阅读 · 0 评论 -
下拉框Spinner
重要属性和方法属性android:dropDownVerticalOffset:设置竖直偏移量android:dropDownHorizontalOffset:设置水平偏移量android:spinnerMode:设置下拉框的显示模式方法setPrompt():设置选项顶部提示文字setAdapter():设置适配器setSelection():设置当前默认选项定义下拉框 <Spinner android:id="@+id/spinner"原创 2021-11-16 20:07:06 · 1521 阅读 · 0 评论 -
在活动中使用Menu
首先在res目录下新建一个menu文件夹,右击res-new-directory,输入menu文件夹名,之后右击menu-new-menu resource file。输入文件名main,点击ok完成创建。然后在文件main.xml中输入代码<!--这里表示创建了三个菜单项:add、remove、set。--><item android:id="@+id/add_item" android:title="add"></item><item andro原创 2021-11-19 16:19:15 · 1280 阅读 · 0 评论 -
通知栏Notification通知的使用
文章目录基本用法通知点击效果实现进阶技巧:Notification.Builder的常用API(1)在通知发出的时候播放一段音频(2)在通知发出时振动(3)控制手机LED灯的显示(4) 使用默认效果Notification.Builder API的高级功能(1) setStyle()(2)setPriority()基本用法@RequiresApi(api = Build.VERSION_CODES.O)public void notification(View view) { //生成chan原创 2021-11-25 16:18:10 · 683 阅读 · 0 评论 -
开发一个自定义对话框,其界面中显示标题、提示内容、确定和取消按钮。当点击回退键时,用于提示用户是否退出应用
dialog.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">原创 2021-04-25 10:12:29 · 2372 阅读 · 3 评论 -
AlertDialog对话框的使用
在Android程序中,AlertDialog对话框用于提示一些重要信息或者显示一些需要用户额外交互的内容,它一般以小窗口的形式展示在桌面上。创建AlertDialog对话框的步骤调用AlertDialog的静态内部类Builder创建AlertDiaalog.Builder的对象。调用AlertDialog.Builder的setTitle()方法和setIcon()方法分别设置对话框的标题名和图标。调用AlertDialog.Builder的setMessage()、setSingleChio原创 2021-04-17 16:35:07 · 1584 阅读 · 0 评论 -
RadioButton和CheckBox的使用
文章目录RadioButton举例1举例2CheckBox举例RadioButton表示单选按钮,是button的子类,每一个按钮都有选择和未选中两种状态,经常与RadioGroup一起使用,否则不能实现其单选功能。RadioGroup继承自LinearLayout,可以使用Orientation属性控制RadioButton的排列方向举例1 <RadioGroup android:id="@+id/rg1" android:layout_width="原创 2021-07-27 18:35:25 · 1252 阅读 · 0 评论 -
开发一个整数加法的程序,实现将计算结果显示到页面上的功能
xml代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_wi原创 2021-04-24 15:26:31 · 6312 阅读 · 1 评论 -
Android简单控件的使用
简单控件的使用TextViewTextView控件用于显示文本信息TextView常用属性属性名称功能描述android:layout_width设置控件的宽度android:layout_height设置控件的高度android:id设置控件的唯一标识android:background设置控件的背景android:layout_margin设置控件与屏幕边界或周围控件、布局的距离android:padding设置控件与该控件中内容的距原创 2021-04-06 15:52:19 · 972 阅读 · 0 评论