恩,最普通的输入框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中想要对文本框中输入的数据进行保存怎么实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)