-1

I don't see how this array list is working

    public static final Map<String, LatLng> CITY_LOCATIONS = new HashMap<String, LatLng>() {{
//code hits here first
        put(CITY_SYDNEY, new LatLng(-33.873651, 151.2068896));
    }};

    /**
     * All photos used with permission under the Creative Commons Attribution-ShareAlike License.
     */
    public static final HashMap<String, List<Attraction>> ATTRACTIONS =
            new HashMap<String, List<Attraction>>() {{
//then here next somehow

        put(CITY_SYDNEY, new ArrayList<Attraction>() {{
            add(new Attraction(
                    "Sydney Opera House",
                    "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae bibendum justo, vitae cursus velit. Suspendisse potenti.",
                    "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae bibendum justo, vitae cursus velit. Suspendisse potenti. Suspendisse scelerisque risus justo, non tincidunt nibh blandit et. Vivamus elit lacus, luctus nec erat in, pharetra semper turpis. Quisque viverra nulla ligula, non pulvinar ante dictum sit amet. Vestibulum aliquet tortor mauris, vel suscipit nisl malesuada eget. Aliquam maximus dictum euismod. Maecenas leo quam, volutpat id diam eget, placerat fringilla ipsum. Nam pretium vehicula augue quis euismod.\n\nNam sed blandit magna. Vestibulum a fermentum arcu. Vestibulum et ligula at nisi luctus facilisis. Proin fermentum enim a nibh commodo finibus. Suspendisse justo elit, vulputate ut ipsum at, pellentesque auctor massa. Praesent vestibulum erat interdum imperdiet dapibus. In hac habitasse platea dictumst. Proin varius orci vitae tempor vulputate.\n\nEtiam sed mollis orci. Integer et ex sed tortor scelerisque blandit semper id libero. Nulla facilisi. Pellentesque tempor magna eget massa ultrices, et efficitur lectus finibus.",
                    Uri.parse("https://lh5.googleusercontent.com/-7fb5ybQhUbo/VGLWjIL4RmI/AAAAAAAAACM/2jLe_msj_tk/w600-no/IMG_0049.JPG"),
                    Uri.parse("https://lh3.googleusercontent.com/-EFEw6s7mT6I/VGLkCH4Xt4I/AAAAAAAAADY/ZlznhaQvb8E/w600-no/DSC_2775.JPG"),
                    new LatLng(-33.858667, 151.214028),
                    CITY_SYDNEY
            ));

            add(new Attraction(
                    "Sydney Harbour Bridge",
                    "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris ut nulla neque. Morbi nec felis vel neque rhoncus malesuada.",
                    "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris ut nulla neque. Morbi nec felis vel neque rhoncus malesuada. Mauris non nisi est. Nunc in ipsum euismod, suscipit dolor eget, efficitur nisi. Integer venenatis mauris mauris, quis luctus risus pellentesque a. Duis tempus est at ligula vehicula fermentum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.\n\nNam ut sodales nibh, euismod aliquet lectus. Curabitur ornare dictum nisi, at faucibus magna. Morbi tempus nibh sed sodales volutpat. Etiam sodales, turpis sit amet porttitor tristique, libero libero faucibus est, viverra dictum risus ipsum vel augue. Nulla dolor magna, iaculis ac ornare id, fermentum eget massa. Sed mattis, odio nec sodales vehicula, neque metus ullamcorper nulla, sit amet ullamcorper risus lectus a ipsum. Curabitur venenatis feugiat quam nec elementum. Curabitur a interdum urna. Curabitur tincidunt tortor eget neque condimentum blandit. Etiam imperdiet, enim nec blandit convallis, nunc augue.",
                    Uri.parse("https://lh6.googleusercontent.com/-ORRJtfLQlaw/VGLmQPv3n8I/AAAAAAAAAD8/2TzSCCPzl9k/w600-no/DSC04114.JPG"),
                    Uri.parse("https://lh4.googleusercontent.com/-ch9Kk-7pD68/VGLkCNh5niI/AAAAAAAAADc/ztxkRHWX-po/w600-no/DSC_2739.JPG"),
                    new LatLng(-33.852222, 151.210556),
                    CITY_SYDNEY
            ));

        }});

    }};

Some how the whole list ends up in this list:

 List<Attraction> attractions = ATTRACTIONS.get(closestCity);

I want to do something different due to networking having to be in the fragment class. So how can I manually enter the list like this?

List<Attraction> attractions = ?
scooter
  • 13
  • 1
  • 9
  • Your question is confusing. What is a fragment class? There is a list per city, not a single list. What do you mean by manually creating the list? – John Scattergood Dec 14 '15 at 05:57
  • a Hashmap ATTRACTIONS contains CITY_SYDNEY a string(key) and new ArrayList()(value) then your new ArrayList() contains object of Attraction i.e new Attraction... and be clear about your question what you want – sud Dec 14 '15 at 05:59
  • The code snippet does use a "double brace intialization" which may be unusual for some. It basically creates an anonymous inner class and initializes the instance. See http://stackoverflow.com/questions/1958636/what-is-double-brace-initialization-in-java – John Scattergood Dec 14 '15 at 06:06
  • This example comes from the google xyz tourist attraction example. The List attractions = ATTRACTIONS.get(closestCity); is in a fragment class. I get lost trying to debug it because it jump to a file named TouristAttactions and the cities are being initialized there. I can't make a network call in that file. – scooter Dec 14 '15 at 06:20
  • TouristAttraction file: https://github.com/googlesamples/android-XYZTouristAttractions/tree/master/Application/src/main/java/com/example/android/xyztouristattractions/provider – scooter Dec 14 '15 at 06:20
  • Fragment Class: https://github.com/googlesamples/android-XYZTouristAttractions/blob/master/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListFragment.java – scooter Dec 14 '15 at 06:21
  • I am trying change the list coming from a json on a server. Which I why I think I need to do this in the Fragment class using async – scooter Dec 14 '15 at 06:22

1 Answers1

0

It's really hard to understand what you're trying to do. If you want to create a list of hard coded attractions, you can write like this:

List<Attraction> attractions = Arrays.asList(
    new Attraction(...),
    new Attraction(...),
    ...
);
janos
  • 120,954
  • 29
  • 226
  • 236