【问题标题】:Passing String in HashMap to another activity将 HashMap 中的字符串传递给另一个活动
【发布时间】:2014-03-20 10:47:56
【问题描述】:

我有一个HashMap,我在其中解析了一些 JSON 数据。该地图有一些字符串值,它们是 Urls。我将 Map 值显示为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;
        }

    });

【问题讨论】:

    标签: java android android-listview hashmap


    【解决方案1】:

    您将 HashMap 与键 "Items" 放在一起,并尝试使用键 "NewsItems" 进行检索。您应该使用相同的键来放置和检索元素。

    编辑:

    您正在投射到错误的对象。你传递一个HashMap&lt;String, String&gt; 的实例并将其转换为ArrayList&lt;HashMap&lt;String, String&gt;&gt;

    【讨论】:

    • myList 是一个 ArrayList>
    • 你能至少告诉你从哪里得到异常吗?还是 NPE 吗?
    • 我在`myNews.loadUrl(newUrl);`上得到了异常。
    • 我明白了,但 myList 是空的。您可以发布导致崩溃的实际代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多