2014-01-14 7 views
0

У меня естьПроходят TreeMap от одного вида деятельности на другой

TreeMap<String, ArrayList<Video>> mShows = new TreeMap<String, ArrayList<Video>>(); 

, и я стараюсь, чтобы перейти от одного вида деятельности к другому. Я попытался

«putExtra treeMap returns HashMap cannot be cast to TreeMap android»

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Intent i = getIntent(); 
    Bundle bun = i.getBundleExtra("lascategorias"); 
    mCategories = bun.getStringArray("categories"); 
    mShows = new TreeMap<String, ArrayList<Video>>(Map<String,ArrayList<Video>> getIntent().getExtras().get("map"));   
} 

, но он говорит, что карта, String и ArrayList не может быть решена в переменную, где я (Карта>)

Это, как я добавить его

protected void onPostExecute(final String json) { 
     Log.i(LOG_TAG, "decoding..."); 
     if (json == null) 
      return; 
     try { 
      final URI base = new URI(mUrl); 
      final JSONObject jso = new JSONObject(json); 
      final JSONArray ja = jso.getJSONArray("categories"); 
      for (int i = 0; i < ja.length(); i++) { 
       final JSONObject list = ja.getJSONObject(i); 
       final ArrayList<Video> vidList = new ArrayList<Video>(10); 
       mShows.put(list.getString("name"), vidList); 
       final JSONArray videos = list.getJSONArray("videos"); 
       for (int j = 0; j < videos.length(); j++) { 
        final JSONObject vids = videos.getJSONObject(j); 
        final JSONArray sources = vids.getJSONArray("sources"); 
        try { 
         final Video v = new Video(base.resolve(vids.getString("thumb")), 
           base.resolve(sources.getString(0)), vids.getString("title"), 
           vids.getString("subtitle"), vids.getString("description")); 
         vidList.add(v); 

         // The rare case that I've got more than one 
         for (int k = 1; k < sources.length(); k++) { 
          v.mSource.add(base.resolve(sources.getString(k))); 
         } 
        } catch (IllegalArgumentException expected) { 
         Log.e(LOG_TAG, "Bad Json."); 
        } 
       } 
      } 
     } catch (final JSONException je) { 
      Log.e(LOG_TAG, "An error in the JSON." + je.getMessage()); 
     } catch (final URISyntaxException se) { 
      Log.e(LOG_TAG, "URI syntax error" + se.getMessage()); 
     } 
     //onDataComplete(); 
     mCategories = getCategories(); 
     Bundle b = new Bundle(); 
     b.putStringArray("categories", mCategories); 
     //b.p 
     Intent i = new Intent("com.video.tv.MainActivity"); 
     i.putExtra("las Categorias", b); 
     i.putExtra("map", mShows); 
     startActivity(i); 
     finish(); 
    } 
} 

I declared mShows earlier 
public TreeMap<String, ArrayList<Video>> mShows = new TreeMap<String, ArrayList<Video>>(); 
+0

В чем проблема? – Melquiades

+0

Я получаю сообщение о том, что Map > не может быть разрешен к типу – aafonso1991

+0

. Пожалуйста, напишите больше кода (где вы это называете). Кроме того, ваша карта построения = новый TreeMap <...> (...) getIntent ... неверен. – Melquiades

ответ

0

Отсутствует одна закрывающая скобка, непосредственно перед getIntent(). Правильная форма:

mShows = new TreeMap<String, ArrayList<Video>>((TreeMap<String, ArrayList<Video>>) getIntent().getExtras().get("map")); 
+0

спасибо за помощь. Это решило проблему. – aafonso1991

+0

Добро пожаловать. – Melquiades

+0

Я думал, что ошибка решена, но я получаю java.util.HashMap не может быть добавлен в java.util.treemap – aafonso1991

Смежные вопросы

 Смежные вопросы