android-保存哈希图的ArrayList

问题描述

保存哈希图的ArrayList

savedInstanceState()中保存数据。保存ArrayList<HashMap<String,String>>。但是目前还没实现,代码如下:

@Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putParcelableArrayList("places", (ArrayList<? extends Parcelable>) places);

    }

restore()方法

private void restore(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        //What should i do here! i have try many things but none of them is helping

    }

解决方案

  ArrayList< HashMap< String,String>> arr = new ArrayList< HashMap< String,String>> ();

    @Override
    protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putParcelableArrayList("places", (ArrayList<    ? extends Parcelable>) arr);
    }

   @Override
   protected void onRestoreInstanceState(Bundle savedInstanceState) {

   ArrayList<HashMap<String,String>> a = (ArrayList<HashMap<String,String>>)savedInstanceState.get("places");
   /*for(int i =0; i< a.size(); i++){
        HashMap<String,String> map = a.get(i);
        for(String s : map.keySet()){
            Log.d("log",s+" :: "+map.get(s));
        }
    }*/
}

解决方案二:

ArrayList, HashMap和String是Serializable,你可以使用Bundle.putSerializableBundle.getSerializable

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putSerializable("places", places);
}

private void restore(Bundle savedInstanceState) {
    if (savedInstanceState != null) {
        places = (ArrayList<HashMap<String,String>>) savedInstanceState.getSerializable("places");
    }
}

还有注意从onRestoreInstanceState或者onCreate调用restore

时间: 2025-01-15 23:40:29

android-保存哈希图的ArrayList的相关文章

Android保存数据

Android保存数据的方式,每种存储方式都各有不同,有如下四种: 1.Shared Preferences:主要用于保存程序的系统配置信息.用来存储"key-values paires".一般用于保存程序启动时设定的信息,以便在程序下一次启动时继续保留前一次设定的信息. 2.Files:用文件的形式保存信息.可以通过对文件的读写来获取或保存相关信息. 3.SQLite:用数据库的形式保存信息.SQLite是一个开源的数据库 系统. 4.NetWork:将数据保存于网络. 1. Pre

android保存h264流文件为mp4

问题描述 android保存h264流文件为mp4 网络预览视频,收到的是H264编码的流,有个保存按钮,可以把收到的留实时保存为H264的流文件,用特定播放器可以播放,想收到流的同时,另外实时生成一个MP4文件,有什么好的方法 解决方案 调用ffmpeg实现http://blog.csdn.net/hclydao/article/details/36415975http://blog.csdn.net/hclydao/article/details/18546757http://blog.cs

android保存文件到手机内存

首先要指定文件保存的位置,在Java中,我们可以直接使用 Filefile=new File("info.txt"),但是在Android中,使用这个路径文件会被保存到data/app文件夹(应用程序根目录)下,Android是不允许在这里保存文件的.Android保存文件都是保存在"data/data/包名"文件夹下的.故应该: Filefile=new File("data/data/com.xxxx.xxxx/info.txt"); Fil

Android保存Activity状态的方法_Android

本文实例讲述了Android保存Activity状态的方法.分享给大家供大家参考,具体如下: 如果你想保存Activity的信息(例如,类实例的变量)而又不需要和其它的组件共享的话,你可以调用Activity的getPreferences方法,不用指定一个Preference的名字.对返回的Shared  Preference的访问只限于调用的Activity:每个Activity支持一个不命名的Shared Preference对象. 下面的框架代码显示了如何使用Activity的私有Shar

Android保存Activity状态的方法

本文实例讲述了Android保存Activity状态的方法.分享给大家供大家参考,具体如下: 如果你想保存Activity的信息(例如,类实例的变量)而又不需要和其它的组件共享的话,你可以调用Activity的getPreferences方法,不用指定一个Preference的名字.对返回的Shared  Preference的访问只限于调用的Activity:每个Activity支持一个不命名的Shared Preference对象. 下面的框架代码显示了如何使用Activity的私有Shar

Android保存和恢复ListView的滑动后位置

MainActivity如下: package cc.testlistview; import java.util.ArrayList; import java.util.HashMap; import cn.com.bravesoft.testlistviewloadmore.R; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import and

Android 保存Fragment 切换状态实例代码_Android

前言  一般频繁切换Fragment会导致频繁的释放和创建,如果Fragment比较臃肿体验就非常不好了,这里分享一个方法.  正文  一.应用场景   1.不使用ViewPager   2.不能用replace来切换Fragment,会导致Fragment释放(调用onDestroyView)  二.实现 1.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:

Android 保存画图

  原文:http://blog.csdn.net/lessu/archive/2010/04/28/5539748.aspx   很多人在做画图软件的时候找不到保存画好图片的方法.. 其实可以在bitmap上面画,然后保存bitmap就可以了,而不需要找屏幕截图的函数了... package com.android.DrawTest; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOu

android保存Bitmap图片到指定文件夹示例_Android

复制代码 代码如下: /** 保存方法 */ public void saveBitmap() { Log.e(TAG, "保存图片"); File f = new File("/sdcard/namecard/", picName); if (f.exists()) { f.delete(); } try { FileOutputStream out = new FileOutputStream(f); bm.compress(Bitmap.CompressFor