• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            life02

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              197 隨筆 :: 3 文章 :: 37 評論 :: 0 Trackbacks
            android 中通過 aidl 傳遞map對象
            http://blog.sina.com.cn/s/blog_7a4b93580100um3s.html
                分類: android
            思路: aidl傳遞
            -------intent(包含一個(gè)bundle對象而bundle中放的是Bundle.putSerializable(String key, Serializable value))--------Serializable value(這里我想放的是一個(gè)map對象)-----HashMap(Map<String, ArrayList<Entity>>  String為這個(gè)數(shù)據(jù)集合的一個(gè)標(biāo)記可以通過這個(gè)標(biāo)記獲取這個(gè)數(shù)據(jù)集合)---- ArrayList<Entity> (實(shí)體的數(shù)據(jù)集合類)。

            雜癥:Serializable value
            實(shí)體Entity實(shí)現(xiàn)了序列化接口,依然不可傳遞。解決辦法是將map封裝了一下,實(shí)現(xiàn)了序列化接口就OK了。

            實(shí)例:某哥們的demo(用了兩個(gè)Activity,一個(gè)傳遞數(shù)據(jù),另一個(gè)接受數(shù)據(jù)):

            封裝的map:

            public class MyMap implements Serializable{



                
            private Map<String, ArrayList<Entity>> map;



                
            public Map<String, ArrayList<Entity>> getMap() {

                    
            return map;

                }



                
            public void setMap(Map<String, ArrayList<Entity>> map) {

                    
            this.map = map;

                }

                

            }

            實(shí)體Entity:

              

            public class Entity implements Serializable{

              String id;

              String name;

              String age;

                
            public String getId() {

                    
            return id;

                }

                
            public void setId(String id) {

                    
            this.id = id;

                }

                
            public String getName() {

                    
            return name;

                }

                
            public void setName(String name) {

                    
            this.name = name;

                }

                
            public String getAge() {

                    
            return age;

                }

                
            public void setAge(String age) {

                    
            this.age = age;

                }

                  

            }

             用于傳遞數(shù)據(jù)的Activity:

            public class MapDemoActivity extends Activity {

                Button button;

                

                @Override

                
            public void onCreate(Bundle savedInstanceState) {

                    
            super.onCreate(savedInstanceState);

                    setContentView(R.layout.main);

                    

                    Map
            <String, ArrayList<Entity>> map=initData();

                    
            final MyMap myMap=new MyMap();

                    
            //將map數(shù)據(jù)添加到封裝的map中
                    myMap.setMap(map);

                    

                    button
            =(Button) findViewById(R.id.btn);

                    button.setOnClickListener(
            new OnClickListener() {

                        

                        
            public void onClick(View v) {

                            
            // TODO Auto-generated method stub
                            Intent intent=new Intent(MapDemoActivity.this,ReceiveMap.class);

                            Bundle bundle
            =new Bundle();

                            bundle.putSerializable(
            "map", myMap);

                            intent.putExtras(bundle);

                            startActivity(intent);

                        }

                    });

                }

                

                
            private Map<String, ArrayList<Entity>> initData() {

                    
            // TODO Auto-generated method stub
                    Map<String, ArrayList<Entity>> map=new HashMap<String, ArrayList<Entity>>();

                      
            for(int i=0;i<10;i++){

                        ArrayList
            <Entity> list=new ArrayList<Entity>();

                          
            for(int j=0;j<10;j++){

                              Entity entity
            =new Entity();

                              entity.setId(
            ""+j);

                              entity.setName(
            "name"+j);

                              entity.setAge(
            "age"+j);

                              list.add(entity);

                          }

                          map.put(
            "path"+i, list);

                      }

                    
            return map;

                }

                

                

            }

              

            用來接受數(shù)據(jù)的Activity:

            public class ReceiveMap extends Activity {

                TextView textView;

                Button  button;

                MyMap myMap;

                
            protected void onCreate(Bundle savedInstanceState) {

                    
            // TODO Auto-generated method stub
                    super.onCreate(savedInstanceState);

                    setContentView(R.layout.receive_data);

                    

                    Bundle bundle
            =getIntent().getExtras();

                    myMap
            =(MyMap) bundle.get("map");

                    

                    textView
            =(TextView) findViewById(R.id.tv);

                    button
            =(Button) findViewById(R.id.receive_btn);

                    button.setOnClickListener(
            new OnClickListener() {

                        

                        
            public void onClick(View v) {

                            
            // TODO Auto-generated method stub
                            Map<String, ArrayList<Entity>> map=myMap.getMap();

                            
            if(map==null)

                                
            return ;

                            
            for(int i=0;i<10;i++){

                                ArrayList
            <Entity> list=map.get("path"+i);

                                
            if(list==null||list.size()==0)

                                    
            continue;

                                    textView.append(
            "map key--"+"path"+i+"---list size is---"+list.size()+"\n");

                            }

                        }

                    });

                }

               

            }

            posted on 2012-04-06 14:08 life02 閱讀(4168) 評論(0)  編輯 收藏 引用 所屬分類: Android開發(fā)
            九九久久精品无码专区| 久久精品中文无码资源站| 亚洲va久久久噜噜噜久久男同| 欧美一区二区久久精品| 色综合久久综合中文综合网| 69久久精品无码一区二区| 国产香蕉97碰碰久久人人| 欧美亚洲国产精品久久| 99精品久久精品| 久久综合亚洲鲁鲁五月天| 99久久精品国产免看国产一区| 亚洲精品国产自在久久| 久久99国产精品久久久| 亚洲中文字幕久久精品无码喷水| 久久精品成人免费网站| 国内精品伊人久久久影院 | 精品免费久久久久久久| 久久综合九色欧美综合狠狠| 97热久久免费频精品99| 精品国产99久久久久久麻豆| 国产一区二区精品久久凹凸| 国产亚洲精品自在久久| 久久精品亚洲AV久久久无码| 久久99精品国产麻豆蜜芽| 久久99精品国产一区二区三区| 香蕉久久夜色精品升级完成| 欧美精品一区二区久久| 久久精品无码专区免费| 国产国产成人久久精品| 成人国内精品久久久久一区| 色婷婷久久综合中文久久蜜桃av | 久久亚洲私人国产精品vA | 伊人久久国产免费观看视频| 久久99精品九九九久久婷婷| 精品久久久久久无码人妻热 | a高清免费毛片久久| 国产麻豆精品久久一二三| 97精品伊人久久大香线蕉app| 久久精品水蜜桃av综合天堂| 人妻丰满AV无码久久不卡| 久久狠狠高潮亚洲精品|