- 博客(47)
- 资源 (2)
- 收藏
- 关注
原创 Harmony OS :状态页管理
在开发响应式鸿蒙应用时,我们实现了基于网络状态和数据的动态页面展示方案。虽然单个页面的修改可以在当前页面完成,但需要确保整个项目的所有界面都保持一致的响应逻辑和用户体验。接下来我们进行封装一个状态页。
2025-06-20 14:37:26
260
原创 【HarmonyOS】鸿蒙中如何获取用户相册图片
摘要:鸿蒙系统提供三种获取相册图片的方式:1) 系统选择器(PhotoViewPicker)实现简单但UI不可定制;2) 直接访问相册数据库(PhotoAccessHelper)需要受限权限且需用户授权;3) 文件选择器(FilePicker)无需权限但必须用户手动选择。三种方法各具特点,开发者需根据应用场景选择合适方案,其中系统选择器适合基础需求,数据库访问适合批量处理,文件选择器则更适合多文件类型选择场景。
2025-06-03 11:13:34
416
原创 HarmonyOS List拖拽位置交换多种实现方式
本文介绍了在鸿蒙系统中实现List列表元素拖拽交换位置的两种方法。方法一利用List的手势事件,通过onItemDragStart获取拖拽起点,onItemDrop实现位置交换逻辑,需要处理数组边界判断。方法二结合元素和列表的事件,使用onDragStart记录起始位置,onDrop完成元素交换。两种方法都需要使用状态管理修饰列表数据,目前方案缺少交互动画效果,有待后续优化。这些实现方式为鸿蒙List的拖拽交互提供了实用解决方案。
2025-05-28 14:48:32
970
转载 Activity四种启动模式
Activity启动方式有四种,分别是:standardsingleTopsingleTasksingleInstanceActivity的启动模式:有两种设置方式1>第一种:在 1.standard:默认模式 (拿来主义) 每次都会创建一个新的实例 2.singleTop (拒绝堆叠)和stadard一样,可以多次实例化
2016-02-17 14:41:18
1982
原创 ContentResolver之读取联系人
package com.qianfeng.contentprovidercontacts;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.C
2015-08-02 21:02:52
3245
原创 ContentReolver之打电话记录
代码:package com.qianfeng.contentprovidercalllog;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util
2015-08-02 21:02:40
1073
原创 ContentResolver之短信读取
代码:package com.qianfeng.contenprovidersms;import java.text.SimpleDateFormat;import java.util.Date;import android.app.Activity;import android.content.ContentResolver;import android.content
2015-08-02 20:58:27
2280
原创 SqliteDatabase之分页加载
代码:package com.qianfeng.sqlitedivpage;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;impo
2015-08-02 20:57:17
1502
原创 SqliteDatabase之如何读取数据库()
代码:package com.qianfeng.sqlitedatabase;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;imp
2015-08-02 20:55:42
5642
原创 SqliteDatabase之SqliteOpenHelper_封装方法
封装代码:package com.qianfeng.sqliteopenhelpe2.manager;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;/** * 数据库的增,删,改,查方法 */publ
2015-08-02 20:51:21
713
原创 SqliteDatabase之SqliteOpenHelper(1)
代码:首先写个helper 类去继承SqliteOpenHelper:package com.qianfeng.sqliteopenhelper.manager;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQL
2015-08-02 20:22:45
559
原创 数据存储之外部存储
外部存储的特点:1,外部存储不一定是有效的2,数据存储是全局可读的 可以被别的程序读取3,当删除本应用程序 内部私有的数据会被删除 代码:Utils:package com.qianfeng.extranalstorage.utils;import java.io.BufferedReader;import java.io.File;
2015-08-02 19:46:57
907
转载 sqlit3的使用
sqlite3使用入门sqlite的安装1. 首先是下载sqlite,可以该页面下载:http://www.sqlite.org/download.html当前的最新版本为:sqlite-shell-win32-x86-3070701.zip这个是windows下sqlite的命令行管理工具,用它可以管理sqlite数据库文件同时最好把文档也下载下来,里面包含了详细
2015-07-29 22:21:45
934
原创 文件存储之SharedPreference存储
package com.qianfeng.sharedpreferences;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.content.SharedPreferences;import android.content.SharedP
2015-07-28 23:18:50
725
原创 数据存储之内部存储
package com.example.internalstorage;import java.io.BufferedReader;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;im
2015-07-28 23:17:52
632
原创 ListFragment的用法
代码:ListFragment :package com.example.day12_listfragment;import java.util.ArrayList;import java.util.List;import android.annotation.SuppressLint;import android.app.ListFragment;import andr
2015-07-28 23:14:56
905
1
原创 Fragment向Fragment传值(第三种)
因为 fragment1 和fragment2 都在Activity中 所以可以根据Activity得到里面的控件代码Fragment1:package com.qianfeng.fragmenttofragment2;import android.annotation.SuppressLint;import android.app.Fragmen
2015-07-28 23:12:32
2600
原创 Fragment向Fragment传值(第二种)
通过fragment指定的id 找到Fragment对象代码Fragment1:package com.qianfeng.fragmenttofragment2;import android.annotation.SuppressLint;import android.app.Fragment;import android.os.Bundle;import and
2015-07-28 23:10:17
851
原创 Fragment向Fragment传值(第一种)
1.fragment通过回调接口 将值返给Activity2.Activity 通过setArguments 传值给另一个Fragment代码:Fragment1 :package com.qianfeng.fragmenttofragment1;import android.annotation.SuppressLint;import android.app
2015-07-28 23:00:50
1286
原创 Fragment向activity中传值
Fragment向activity中传值1.在Fragment中写一个回调接口 2.在activity中实现这个回调接口3,在Fragment中onAttach 方法中得到activity中实现好的 实例化接口对象4,用接口的对象 进行传值代码:MainActivity:package com.qianfeng.fragmenttoa
2015-07-28 22:56:57
15814
原创 Activity向Fragment中传值
activity向fragment中传值 1。要传的值 放到Bundle对象里2。通过创建传递封Fragment 将bundle对象 通过 setArguments()传递到fragment3.Fragment中 通过getArguments() 得到 bundle对象 就能得到里面的值代码:MainActivity:package
2015-07-28 22:54:44
54633
原创 Fragment的生命周期(4)
代码activity中;package com.qainfeng.fragmentlifecycle;import android.os.Bundle;import android.app.Activity;import android.app.FragmentManager;import android.app.FragmentTransaction;import and
2015-07-27 23:52:22
532
原创 使用Fragment(3)
代码中:package com.qianfeng.fragmentdemo;import android.os.Bundle;import android.app.Activity;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.view.Menu;imp
2015-07-27 23:46:14
484
原创 代码中使用Fragment(2)
代码中:package com.qianfeng.createfragment2;import android.os.Bundle;import android.app.Activity;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.view.Me
2015-07-27 23:43:10
457
转载 activity布局中加载fragment
1.首先 创建fragment的类 package com.qianfeng.fragmentdemo;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.vie
2015-07-27 23:10:07
2579
转载 Fragment的基本内容
Fragment简单使用 Fragment :在Activity中使用的碎片,有自己的布局、生命周期和输入事件 使用Fragment步骤 1、创建类,并继承Fragment 2、重写Fragment的onCreateView()生命周期方法,并返回一个View 3、在布
2015-07-27 22:48:55
581
转载 Notification 的使用
直接附代码:package com.qianfeng.notification;import android.os.Bundle;import android.app.Activity;import android.app.NotificationManager;import android.app.PendingIntent;import android.content
2015-07-27 17:42:31
381
原创 Notification 的基本知识
Notify通知 NotificationManager类对象 getSystemService(Context.NOTIFICATION_SERVICE) 获取通知管理对象 notify(int id, Notification notification) cancel(int id) 取消通知 c
2015-07-27 17:41:34
405
原创 Dialog的多种使用
直接附代码了:package com.example.dialog;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.os.Bundle;import android.app.Activity;i
2015-07-27 17:36:13
437
原创 Dialog
Dialog对话框 对话框的分类 AlertDialog 警告对话框(提示对话框) ProgressDialog 进度对话框 DatePickerDialog 日期选择对话框 TimerPickerDialog 时间选择对话框 自定义对话框(登录对话框、关于对话框)
2015-07-27 17:35:10
458
原创 Toast 吐司 提示框
/* * Toast特点 * 1.toast不会影响正常的用户交互 * 2.toast的显示时间有效 自动的消失 * 3.toast不能获取用户焦点 */Toast 属性: Toast(Context context) Toast makeText(Context context, int resId, int duration)
2015-07-26 18:42:53
5751
原创 Menu菜单之PopMenu
PopupMenu PopupMenu(Context context, View anchor): 第二个参数是指弹出菜单显示的哪一个控件的下方或上方 MenuInflater.inflate(int menuResId,PopupMenu.getMenu()) 加载菜单资源到弹出菜单对象中 setOnMenuItemClickListener() 设置弹出菜单项的
2015-07-26 15:40:51
3748
原创 Menu菜单之ContextMenu
(一)、上下文菜单介绍:上下文菜单继承自android.view.Menu。1、上下文菜单与Options Menu最大的不同在于:Options Menu的拥有者是Activity,而上下文菜单的拥有者是Activity中的View;每个Activity有且只有一个Options Menu,它为整个Activity服务。而一个Activity往往有多个View,哪个View需要上
2015-07-26 15:15:11
912
原创 Menu 菜单之OptionsMenu
1.菜单的分类 1.1 Options menu 选项菜单 功能主要针对activity 可选项 子菜单 item标签的中间嵌套menu标签 1.子菜单不能显示图标 2.子菜单只能有一级1.2 我们也可以在代码中添加2,我们在布局中添加m
2015-07-26 14:45:02
1113
原创 Menu 菜单
Menu菜单 概念 1、Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单。这种菜单叫做选项菜单(Option Menu)。 2、从3.0开始,Android不要求手机设备上必须提供MENU按键。因此Android推荐使用ActionBar来代替Menu。 分类: Options
2015-07-26 14:30:51
479
原创 Loader(1)
概念:用于对数据进行异步加载 一,使用方法: 1、使用Loader时包含的组件 ①Activity或Fragment ②一个LoaderManager实例,用于管理Loader ③使用CursorLoader,用于查询ContentPro
2015-07-24 11:20:13
491
原创 Loader之AsyncTaskLoader(联系人短信)
跟CursorLoader的使用很相似 只是 CursorLoader 里 public Loader onCreateLoader(int id, Bundle args)的方法中 一个是用CursorLoader 一个是用AsynckTaskLoaderAsyncTaskLoader的使用 有以下几点需要注意:1,必须有构造函数 2,必须是静态的内部类3,别忘了加权限
2015-07-24 10:50:54
538
原创 Loader之CursorLoader的使用——加载系统短信的数据(1)
1.使用loader对象 首先创建一个LoaderMananager对象 ,调用LoaderManager对象的initLoader(agr1,agr2,agr3),第三个蚕食是LoaderCallBacks 回调接口 所以 这个类实现这个LoaderCallBack这个接口2,listview绑定一个 SimpleCursorAdapter的 ,这个SimpleCu
2015-07-24 10:04:25
709
原创 ContentProvider的使用(2)
1,ContentProvider 的使用 :首先创建:server端(服务器端),他的作用是提供数据存储位置,以及提供接口给客户端进行数据操作;提供一个数据库:public class SqliteHelper extends SQLiteOpenHelper{ private static final String NAME="info.db"; private st
2015-07-24 08:56:20
480
原创 ContentProvider内容介绍(1)
1, 创建类,继承ContentProvider抽象类 boolean onCreate() Cursor query(Uri,String[],String,String [],String) Uri insert(Uri,ContentValues) int update(Uri,C
2015-07-23 17:56:01
408
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅