android应用程序中的一些固定的数据应该怎么存储啊。

比如我在开发中有一些固定的参数。这些参数,不同的用户是可以自己变更的。... 比如我在开发中有一些固定的参数。这些参数,不同的用户是可以自己变更的。 展开
 我来答
手机用户97535
推荐于2016-11-01 · TA获得超过156个赞
知道答主
回答量:112
采纳率:100%
帮助的人:90万
展开全部
首先了解一下android的数据存储方式:文件流的读取,SQLite,Content Provider以及Preference.。 注:resource和assets中的文件用户方面是只可以读取不能够进行写的操作的。
Content Provider作为程序之间唯一共享数据途径,用在这里不是很合适。所以,
第一种方式,使用FileInputStream,FileOutputStreamdui类实现文件I/O操作,直接往手机中存储数据。
第二种方式,使用SQLite,通过SQLiteDatabase类中方法操作数据。
第三种方式,Preference用于存储简单数据类型的数据,一些设置信息的保存。个人认为用在这里最合适。 它利用键值对存储的。例:
存储:SharedPreferences.Editor editor =sp.edit();
editor.putString(KEY_TEXT,"yonghu");
editor.commit();
获取 :sp =getPreferences(MODE_PRIVATE);
String result =sp.getString(KEY_TEXT,null);
千锋教育
2015-12-06 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
方法1:直接打开手机内存输入输出流进行存储数据
需要在清单文件加入读写内存卡权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

//代码

public static void saveToFile(byte[] data){
File file = Environment.getExternalStorageDirectory();
//存储在内存卡mydata文件中
File dataFile = new File(file,"/mydata");
if(!dataFile.exists()){
try {
dataFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}

FileOutputStream fos = null;
try {
fos = new FileOutputStream(dataFile);
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

方法2:少量数据使用sharepreference,基本上是用来存储程序配置
SharedPreferences sp = context.getSharedPreferences("config",Context.MODE_PRIVATE);
Editor editor = sp.edit();
editor.putBoolean("key", true);
//其他的还有String,int,long等基本类型
editor.commit();

方法3:使用Sqlite

先继承SqliteOpenHelper作为数据库打开帮助类
class Data extends SQLiteOpenHelper{

public Data(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table data("+
"varchar(20) name)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}

//使用sql语句进行数据操作
Data data = new Data(this, "asd", null, 1);
SQLiteDatabase database = data.getWritableDatabase();
String sql="insert into data values('test')";
database.execSQL(sql);
database.close();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
琴棋书画清幽5872
2012-04-07 · TA获得超过5.3万个赞
知道大有可为答主
回答量:2.5万
采纳率:0%
帮助的人:3182万
展开全部
如果是字符串,可以在res/value/array里面存放字符串和字符串数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式