一个android开发的问题:如何实现输入内容后自动保存,即按返回后再打开或程序关闭后再打开输入的内容还在

一个android开发的问题:如何实现输入内容后自动保存,即按返回后再打开或程序关闭后再打开输入的内容还在,第1张

恩,最普通的输入框EditText就行

不过要实现还得自己控制

就是说在此Activity的onstop()方法中,实现保存此字符串(保存数据库或本地都行);

在Activity的onresume方法中取出你保存的字符串,然后editTextsetText(str),就可以看到了

如果说程序关闭后还在,你要在onDestroy()方法中保存,onCreate方法里取出显示

service类必须实现一个接收方法,接收中传递的是intent

@Override

public

IBinder

onBind(Intent

intent)

{

Bundle

bundle

=

intentgetExtras();

String

stringVal

=

bundlegetString("stringValue");

//用于接收字符串

int

numVal

=

bundlegetInt("intValue");

//用于接收int类型数据

byte[]

bytes

=

bundlegetByteArray("bytesValue");

//用于接收字节流,你可以把文件放入字节流

return

null;

}

你可以用Bundle来接受你从Activity发过来的数据,然后使用Bundle提供各个方法来接受数据。

如果仅仅是字符串之类的,

使用getStringExtra方法直接接收即可。

@Override

public

IBinder

onBind(Intent

intent)

{

String

str1

=

intentgetStringExtra("str1");

String

str2

=

intentgetStringExtra("str2");

return

null;

}

Android应用开发中,给我们提供了5种数据的存储方式

1 使用SharedPreferences存储数据

2 文件存储数据

3 SQLite数据库存储数据

4 使用ContentProvider存储数据

5 网络存储数据

不同的业务逻辑,或者需求,用不同的实现方式,以下是这几中数据存储方式的说明用及法:

第一种: 使用SharedPreferences存储数据

SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。

以下为示例代码:

public class MainActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutmain);

//获取SharedPreferences对象

Context ctx = MainActivitythis;

SharedPreferences sp = ctxgetSharedPreferences("SP", MODE_PRIVATE);

//存入数据

Editor editor = spedit();

editorputString("STRING_KEY", "string");

editorputInt("INT_KEY", 0);

editorputBoolean("BOOLEAN_KEY", true);

editorcommit();

//返回STRING_KEY的值

Logd("SP", spgetString("STRING_KEY", "none"));

//如果NOT_EXIST不存在,则返回值为"none"

Logd("SP", spgetString("NOT_EXIST", "none"));

}

}

第二种: 文件存储数据

关于文件存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。

文件可用来存放大量数据,如文本、、音频等。

默认位置:/data/data/< >/files/。

代码示例:

public void save(){

try {

FileOutputStream outStream=thisopenFileOutput("atxt",ContextMODE_WORLD_READABLE);

outStreamwrite(textgetText()toString()getBytes());

outStreamclose();

ToastmakeText(MyActivitythis,"Saved",ToastLENGTH_LONG)show();

} catch (FileNotFoundException e) {

return;

}

catch (IOException e){

return ;

}

}

第三种: SQLite数据库存储数据

SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite。

SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。

SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。

读取文件示例:

public void load(){

try {

FileInputStream inStream=thisopenFileInput("atxt");

ByteArrayOutputStream stream=new ByteArrayOutputStream();

byte[] buffer=new byte[1024];

int length=-1;

while((length=inStreamread(buffer))!=-1) {

streamwrite(buffer,0,length);

}

streamclose();

inStreamclose();

textsetText(streamtoString());

ToastmakeText(MyActivitythis,"Loaded",ToastLENGTH_LONG)show();

} catch (FileNotFoundException e) {

eprintStackTrace();

}

catch (IOException e){

return ;

}

}

第四种 使用ContentProvider存储数据 ContentProvider其实也是通过数据库的方式来存储数据的,因此这里不再做详细介绍

第五种 网络存储数据 也就是说将数据保存在服务器,android上只需要通过>

我是否可以理解为:你创建一个文件夹,然后可以通过Activity来访问他。你可以在sdcard里面创建一个(多个)文件夹,然后你取得这个文件夹的路径,再把路径保存在sqlite数据库中。你的Activity里可以放一个ListView或者一个GridView,控件里面放一个ImageView。启动的时候查询数据库,把数据放入adapter里面,有值就让ImageView有资源,那样就可以看到效果了。

我猜你是想做类似于资源查看器那样的东西吧

第一、b里面的数据是否需要保存,和c里的数据是什么关系?

第二、如果只是要把c的数据传回给a那么可以建一个HashMap。

你说的也不够详细,不同的数据类型,有不同的数据传递选择。

以上就是关于一个android开发的问题:如何实现输入内容后自动保存,即按返回后再打开或程序关闭后再打开输入的内容还在全部的内容,包括:一个android开发的问题:如何实现输入内容后自动保存,即按返回后再打开或程序关闭后再打开输入的内容还在、安卓中如何使用intentservice请求数据并保存在数据库中、android中想要对文本框中输入的数据进行保存怎么实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9340147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存