现程序在第一个画面启动时,读入一些文本文件中的信息。这些信息里边有第二个画面中两个Spinner控件的数据,还有需要动态生成的控件的属性信息。目前在画面间传递数据时遇到了问题,我以为画面间可以传递复杂类型的数据,结果发现只能传递String,double等类型的参数。第一个画面读入的这些信息会被整合成ArrayList和HashMap,因为第二个画面中那两个Spinner有从属的联动关系。现在求类似ArrayList和HashMap这样复杂类型参数的传递方法。
  小弟有另一思路是将第一个画面读入的信息后放到一个全局的对象中,其他画面在OnCreat事件中可以随时获得。类似于Web开发中把一个对象放入Session中,无论在什么时候都可以随时取得该对象。不知道能不能实现。  望高手请教!~

解决方案 »

  1.   

    重写Application类,用来保存全局数据。
      

  2.   

    参考Application用法:android中共享全局数据的方法
      

  3.   


    谢谢回答,能不能再说的稍微具体点?最好能举个例子。小弟刚刚接触Android,还不是很上手。
      

  4.   


    非常非常感谢,刚刚看了那个实例。不过想确认一下在Application类中像List和Map这样的容器类型都可以用吗?
      

  5.   

    刚才按照帖子上的例子试了下 怎么不管用总是报错啊~
    总是报ClassCastException,错误在android.app.Application求高手指点 代码如下appTest.java
    public class appTest extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            ((App)getApplication()).setDemo("sss");
            String demo = ((App)getApplication()).getDemo(); 
        }
    }重写的Application文件
    App.javaimport android.app.Application;public class App extends Application{
       
    private String demo; public String getDemo() {
    return demo;
    } public void setDemo(String demo) {
    this.demo = demo;
    }
    }AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.appTest"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".appTest"
                      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="10" />
        <application android:name=".App"
     android:icon="@drawable/icon" 
     android:label="@string/app_name">
        </application> App.java和appTest.java都在同一个包里com.appTest求高手指点!~!~!~小弟先谢谢了