- 浏览: 148090 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
flyingcatjj:
很适合我这种刚接触的
myeclipse xfire 开发webservice实例 -
tangzlboy:
非常好,非常详细,非常中用。
linux入门 -
yzz9i:
楼主说的很是详细。
myeclipse xfire 开发webservice实例 -
zqx888191:
很再理阿!
老程序员的教诲 -
simplecat123:
...
SQLite数据读取
1 设计界面
<?xml version="1.0" encoding="utf-8"?>
<!-- 线性布局开始 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- 相对布局开始 -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<!-- wrap_content 包裹 内容-->
<!-- fill_parent 填充父项 一行 -->
<!-- TextView 文本标题 -->
<!-- @+id/filenameTesxwiew 设置id -->
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/hello"
android:id="@+id/filenameTesxwiew" />
<!-- EditText 文本内容项 -->
<EditText android:layout_width="60px"
android:layout_toRightOf="@id/filenameTesxwiew"
android:layout_marginLeft="10px"
android:layout_alignTop="@id/filenameTesxwiew" android:layout_height="wrap_content"
android:id="@+id/fileName" />
</RelativeLayout>
<!-- 相对布局结束 -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/contentlable" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minLines="5"
android:id="@+id/fileContent" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buttontext"
android:id="@+id/button"
/>
</LinearLayout>
<!-- 线性布局结束 -->
2 设计业务类
package cn.lee.Manager;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class DataManager {
/**
* 没有使用成员变量的方法可以定义为静态方法
* 保存数据的业务逻辑
* OutputStream 输出流
* content 文件内容
* @throws Exception
*/
public static void saveDate (OutputStream outputStream , String contentString) throws Exception
{
outputStream.write(contentString.getBytes());
outputStream.close();
}
/**
* 读取数据的业务逻辑
* @param InputStream
* @param contentString
* @throws Exception
*/
public static String readDate (InputStream inputStream ) throws Exception
{
byte [] byte1 = new byte[1024];
/**
* 当输入流读到文件的末尾 返回就是-1
*/
int length = inputStream.read(byte1);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
if(length!=-1)
{
//读到的内容存在内存中ByteArrayOutputStream 这个类用于将byte流存储在内存中
byteArrayOutputStream.write(byte1, 0, length);
}
String dateString = byteArrayOutputStream.toString();
byteArrayOutputStream.close();
inputStream.close();
return dateString;
}
}
3 配置资源文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.lee.data"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<!-- 第一步 加入单元测试使用的库 -->
<uses-library android:name="android.test.runner" />
<activity android:name=".AboutDateActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="7" />
<!-- 加入单元测试的启动器 -->
<!-- 注意点 android:targetPackage=""是指定单元测试所在的包 这个包必须和所属应用的包一致 否则会找不到测试类 -->
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="cn.lee.data"
android:label="Test for my app"/>
</manifest>
4 单元测试
package cn.lee.data;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import cn.lee.Manager.DataManager;
import android.content.Context;
import android.test.AndroidTestCase;
import android.util.Log;
public class DateManagerTest extends AndroidTestCase {
private static final String TAG="DateManagerTest";
public void testSave ()throws Exception {
/**
* 内容先定义成固定的内容
* Activity的父类的父类就是context,context与其他框架中的context相同为我们以供了一些核心操作工具。
* openFileOutput("fileName", Context.MODE_PRIVATE);
* 参数1:文件的名字 不能包含路径分隔符‘/’
* 使用这个方法创建的文件,会保存在手机/date/date/应用文件夹(这里就是cn.lee.data)/files目录下;
* /date/date/cn.lee.data/files/fileName.txt 我们可以在window-show view -other-android-file explore看到
* 这是有android决定的;
* 参数2:保存的模式:
* 使用context中的文件输出流它有四种模式:
* 文件读写的操作模式:
* Context.MODE_PRIVATE=0:只能是当前的应用才能操作文件 如果创建的文件已经存在 新内容覆盖原内容
* Context.MODE_APPEND=32768:新内容追加到原内容后 这个模式也是私有的 这个文件只能被创建文件的应用所访问
* Context.MODE_WORLD_READABLE=1:允许其他应用程序读取本应用创建的文件
* Context.MODE_WORLD_WRITEABLE=2:允许其他应用程序写入本应用程序创建的文件,会覆盖原数据。
*/
//文件输出流 参数一 输出目标 参数二 输出模式
FileOutputStream fileOutputStream = this.getContext().openFileOutput("fileName.txt", Context.MODE_PRIVATE);
DataManager.saveDate(fileOutputStream, "xxxxxxx");
}
public void testRead() throws Exception{
//文件输入流 参数是数据源
FileInputStream fileInputStream = this.getContext().openFileInput("fileName.txt");
String contentString = DataManager.readDate(fileInputStream);
Log.i(TAG, contentString);
}
}
5 string.xml文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">文件名称</string>
<string name="app_name">数据的保存和读取</string>
<string name="contentlable">文件内容</string>
<string name="buttontext">保存</string>
<string name="infor">保存失败</string>
<string name="sus">保存成功</string>
</resources>
6 动作执行的类
package cn.lee.data;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import cn.lee.Manager.DataManager;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class AboutDateActivity extends Activity {
private EditText fileNameEditText;
private EditText fileContentEditText;
private Button button;
private static final String TAGSTRING ="AboutDateActivity";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取文本内容 保存的文件名
fileNameEditText = (EditText) this.findViewById(R.id.fileName);
//文件内容
fileContentEditText = (EditText) this.findViewById(R.id.fileContent);
button = (Button) this.findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
int info = R.string.sus;//获取布局文件sus的id 保存成功
String fileNameString = fileNameEditText.getText().toString();
String fileContentString = fileContentEditText.getText()
.toString();
// TODO Auto-generated method stub
//定义文件输出流
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = AboutDateActivity.this
.openFileOutput(fileNameString, Context.MODE_PRIVATE);
//执行
DataManager.saveDate(fileOutputStream, fileContentString);
} catch (Exception e) {
// TODO Auto-generated catch block
Log.i(TAGSTRING, e.toString());
info = R.string.infor;
}finally{
try {
fileOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
Log.i(TAGSTRING, e.toString()); //输出日志信息
info = R.string.infor; //保存失败
}
}
//Toast.makeText 提示信息
Toast.makeText(AboutDateActivity.this, info, 1).show();
}
});
}
}
发表评论
-
Bitmap Drawable byte[] 三者之间的转换以及把数组存入数据库及提取数据重新组合
2012-03-06 11:21 788Bitmap Drawable byte[] 三者之间的转换以 ... -
Android Service生命周期及用法
2011-03-28 13:03 633写道 大家好,上一节 ... -
Android Activity生命周期
2011-03-28 11:41 799大家好,今天给大家详解一下Android中Activity的生 ... -
Drawable使用入门
2011-03-25 16:03 1136一个让人赏心悦目的界面对软件来说非常重要,因此图形图像资源也显 ... -
Android 中的几个常用控件
2011-03-24 14:43 1023写道 1、RadioButton RadioButton ... -
android命令
2011-03-03 14:44 956写道 大家好,今天我 ... -
android学习的好网址
2011-02-22 10:10 936http://www.droidnova.com/and ... -
linux下操作android模拟器命令
2011-02-14 17:14 2142写道 1:列出模拟器类型 android list ... -
Activity生命周期
2011-02-08 19:59 880大家好,今天给大家详解一下Android中Activit ... -
Intent对象的简单使用
2011-02-08 00:38 617如果要转换的页面不只是背景,颜色或文字内容的不同,而是A ... -
setContentView的应用
2011-02-08 00:34 1517手机页面的转换set ... -
多个Activity之间的通信与数据传递的Bundle对象的使用
2011-02-08 00:18 1173在Activity 中调用另一个Activity ,但若 ... -
多个Activity之间的通信
2011-02-07 22:38 2061第一步:新建一个继承Activity的类,如:NewActiv ... -
共享数据功能使用-ContentProvider
2011-01-26 11:03 1209package it.date; import it ... -
外部应用访问
2011-01-11 16:29 1964使用context中的文件输出流它有四种模式: * ... -
使用SharedPreferences进行数据存储-
2011-01-11 11:07 1000很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们 ... -
pull读取xml--android
2011-01-09 22:54 1943pull解析xml文件,和sax和dom一样 都可以脱离and ... -
dom读取xml文档---android
2011-01-09 22:26 1301除了可以使用 SAX解析XML文件,大家也可以使用熟悉的DOM ... -
数据保存到sd卡上
2011-01-05 17:22 9641 关键代码 package cn.lee.data; ... -
android的日志输出和单元测试
2010-12-31 17:52 1546日志输出 代替Syste ...
相关推荐
在Android平台上,获取用户的步数是一项常见的健康监测功能,它可以帮助开发者构建运动跟踪或健康管理类的应用。本DEMO提供了一种简单的方法来实现这一功能,无需编写复杂的后台服务,只需引入必要的库即可。以下是...
获取通知状态是一项关键功能,允许开发者了解通知何时被显示、用户如何与通知互动,以及如何根据这些状态来调整应用的行为。本篇将详细讲解如何在Android中获取通知的状态。 首先,我们要了解Android的通知结构。一...
总的来说,虽然Android读取PPT/PPTX文档存在一定的挑战,但通过合理选择和使用POI的精简版以及自定义界面渲染,可以有效地实现文档的读取和展示功能。在这个过程中,理解文件格式、熟悉API调用以及优化性能都是至关...
在Android平台上,获取当前桌面壁纸是一项常见的任务,尤其在开发个性化应用或与用户界面相关的功能时。本篇文章将深入探讨如何实现这一功能,基于提供的链接(已无法访问,但可以根据历史资料推测方法)以及Android...
总的来说,"android获取本地图片相册及图片"涉及的知识点包括:Android文件系统与权限管理、MediaStore API的使用、图片加载库的运用(如Glide)、多选功能的实现以及Intent的使用。开发者需要熟练掌握这些技术,...
综上所述,实现"Android读取通讯录中设置邮件的联系人"的功能涉及到Android的权限管理、ContentResolver、ContactsContract API的使用,以及数据处理和性能优化等多个方面。通过合理的编程实践,可以创建一个高效且...
在Android系统中,读取外置和内置存储卡的路径以及获取它们的大小是常见的需求,尤其是在处理多媒体文件或者管理应用程序数据时。本教程将详细解释如何实现这一功能。 首先,我们要了解Android对存储卡的分类。在...
在Android平台上,读取PPT(PowerPoint)文件是一个相对复杂的过程,因为原生的Android SDK并不直接支持这种操作。通常,我们需要借助第三方库或服务来实现这一功能。本篇文章将详细探讨如何在Android应用中读取PPT...
在Android开发中,获取通知栏的内容是一项常见的需求,特别是在做系统监控、日志记录或者定制化功能时。本文将深入探讨如何通过源码实现这一功能,主要涉及Android的通知系统架构和相关API的使用。 首先,我们需要...
在Android平台上,获取CPU使用率和内存实时数据是开发者进行性能监控、优化应用或实现系统监控功能的关键步骤。本文将详细介绍如何在Android中获取这些关键信息,并提供相关的代码示例。 首先,我们要理解CPU使用率...
在Android开发中,获取手机上的所有图片并进行列表展示是一项常见的需求,这通常涉及到多媒体文件的访问、数据的加载和UI的设计。以下是一些相关的知识点: 1. **多媒体存储权限**: 在Android 6.0(API级别23)及...
同时,考虑到Android设备的资源限制,建议在处理大文件时采用流式读取或分块读取的方式,以减少内存消耗。 此外,如果你的项目需要支持写入Excel文件,Apache POI同样提供了相应的API,只需在对应步骤中调用即可。...
请注意,由于安全和隐私原因,从Android 8.0(API级别26)开始,非系统应用只能在读取`READ_PHONE_STATE`权限的情况下获取序列号。因此,如果你的应用需要在较低版本的Android上运行或者需要获取序列号,你需要在...
同时,Android还提供了`/proc/stat`系统文件,开发者可以通过读取该文件解析出CPU使用率,但这通常需要更高的权限。 内存使用率的获取相对复杂,因为Android提供了多种方式来查看内存状态。`ActivityManager....
在Android平台上,开发人员经常需要访问用户的通讯录数据来实现特定功能,如联系人同步、消息发送等。本文将深入探讨如何使用Android Studio来读取手机的通讯录,这是一个非常实用且基础的知识点,适用于移动应用...
在Android平台上,获取手机短信是一项常见的功能,尤其在开发与短信相关的应用时,如验证码接收、备份或管理短信等。Android系统提供了丰富的API接口供开发者使用,使得我们能够方便地读取、操作甚至监听短信的变化...
在Android开发中,获取通话状态是一项重要的功能,尤其是在开发与通信相关的应用时。根据给定的文件信息,我们可以深入探讨如何在Android应用中实现这一功能。 ### 一、添加读取手机状态的权限 要在Android应用中...
在Android系统中,通过OTG(On-The-Go)功能,可以将Android设备转换为USB主机,连接外部设备如U盘进行数据的读取和写入。本文将深入探讨如何在Android平台上实现对外置U盘的读取操作,以及相关的技术细节。 1. **...
本文将详细讲解如何在Android系统中获取应用程序的权限列表,并针对日志记录中使用的"jishen" TAG进行讨论。 1. **权限模型概述** Android的权限模型基于声明式权限,开发者在应用的AndroidManifest.xml文件中声明...