将HashMap中的String传递给另一个活动

时间:2014-03-20 10:47:56

标签: java android android-listview hashmap

我有HashMap我已经解析了一些JSON数据。地图有一些字符串值,即Urls。我将地图值显示为ListView。我想将与该特定列表条目相关联的Url打开到另一个包含WebView的活动中。 但是当我尝试在活动之间传递值时,我得到NullPointerException

这是我的代码: -

MainActivity.java

     map = new HashMap<String,String>();
                                map.put(SOURCETITLE, title);
                                map.put(TITLE, description);
                                map.put(THUMBNAILPATH, thumbnail);

                                myNewsList.add(map);


                        }
      ArrayList<HashMap<String, String>> myList = new ArrayList<HashMap<String,String>>();
                        itemsAdapter = new LazyAdapter(this, myList);
                        newsList.setAdapter(itemsAdapter);
                        newsList.setOnItemClickListener(new OnItemClickListener() 
                        {

                            @Override
                            public void onItemClick(AdapterView<?> arg0,
                                    View arg1, int position, long arg3) 
                            {
                                // TODO Auto-generated method stub


                                 Intent nIntent = new Intent(Home.this,DetailedInfo.class);
                                nIntent.putExtra("Items", myList);
                                startActivity(nIntent);
                            }
                        });

DetailedInfo.Java

Intent in = getIntent();

    data =  (ArrayList<HashMap<String, String>>) in.getSerializableExtra("Items");
    for(int pos=0;pos<data.size();pos++)
    {
    HashMap<String, String> urls = data.get(pos);
    String newUrl = urls.get(Home.URL);
    }
    myNews = (WebView)findViewById(R.id.webNewsDetails);
    myNews.getSettings().setJavaScriptEnabled(true);
    myNews.loadUrl(newUrl);
    myNews.setWebViewClient(new WebViewClient()
    {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            // TODO Auto-generated method stub
            view.loadUrl(url);
            return true;
        }

    });

1 个答案:

答案 0 :(得分:2)

您使用密钥"Items"放置HashMap并尝试使用密钥"NewsItems"进行检索。您应该使用相同的键来放置和检索元素。

编辑:

你正在向错误的对象施放。您传递HashMap<String, String>的实例并将其投射到ArrayList<HashMap<String, String>>