2015-07-26 2 views
0

Итак, ребята, в моем приложении, я создаю меню с расширением списка, а одна из групп имеет 4 дочерних элемента, одну из которых открывает страницу facebook, другую страницу веб-сайта, страницу с YouTube и google + страница. Но независимо от того, где я нажимаю, все они открывают страницу google +, и я не понимаю, почему. Вот код:другой URL-адрес, открывающий то же самое

public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 
      int pos = childPosition; 
      //clique em contatos 
      if(groupPosition == 5){ 
       switch(pos) { 
        //Clique em emails e contatos 
        case 0: 
         Intent i = new Intent(MainActivity.this, Contatos.class); 
         MainActivity.this.startActivity(i); 
       } 
      } 
      //clique em hiperligacoes 
      if(groupPosition == 3){ 
       switch(pos) { 
        //click no facebook 
        case 0: 
         Intent browserFace = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/moises.transporte.passageiros?fref=ts")); 
         startActivity(browserFace); 
        //click no site 
        case 1: 
         Intent browserSite = new Intent(Intent.ACTION_VIEW, Uri.parse("http://moises-transportes.pt/")); 
         startActivity(browserSite); 
        //click no youtube 
        case 2: 
         Intent browserYoutube = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.youtube.com/channel/UCXeHbISNnc0eLCPnTeolxLg")); 
         startActivity(browserYoutube); 
        //click no google+ 
        case 3: 
         Intent browserGoogle = new Intent(Intent.ACTION_VIEW, Uri.parse("https://plus.google.com/111005531753993560637/about")); 
         startActivity(browserGoogle); 
       } 
      } 

Можете ли вы, ребята, помочь мне найти, почему это происходит?

+0

Возникает проблема в зависимости от того, на каком этапе щелкнуть первым при тестировании? – Remian8985

+0

Нет, у меня уже был ответ, но пропал перерыв. Но большое спасибо за ваше время! –

ответ

0

break.

Используйте break после каждого случая. Оресейте все случаи после того, как правильный выполняется один за другим.

 if(groupPosition == 3){ 


      switch(pos) { 
        //click no facebook 
        case 0: 
         Intent browserFace = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/moises.transporte.passageiros?fref=ts")); 
         startActivity(browserFace); 
         break; 
        //click no site 
        case 1: 
         Intent browserSite = new Intent(Intent.ACTION_VIEW, Uri.parse("http://moises-transportes.pt/")); 
         startActivity(browserSite); 
         break; 
        //click no youtube 
        case 2: 
         Intent browserYoutube = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.youtube.com/channel/UCXeHbISNnc0eLCPnTeolxLg")); 
         startActivity(browserYoutube); 
        //click no google+ 
         break; 
        case 3: 
         Intent browserGoogle = new Intent(Intent.ACTION_VIEW, Uri.parse("https://plus.google.com/111005531753993560637/about")); 
         startActivity(browserGoogle); 
         break; 
       } 
    } 
+0

Вы правы, большое вам спасибо, я полностью забыл. Можете ли вы просто ответить на другой вопрос, связанный с этим фрагментом кода. С этим кодом у меня есть URL-адрес открытия в внешнем браузере, хром. Есть ли способ, которым я могу сделать это открытым в приложении? Например, если я использовал главный поток данных, то url открывается в приложении, но здесь я использую expandablelistview, есть ли способ, которым я могу это сделать? –

+0

Для этого вам нужно использовать WebView. Посмотрите на google о том, как его использовать. Есть много хороших уроков. –

+0

Хорошо, спасибо большое за ваше время! –

0

Вы забыли разбить свои случаи в коммутаторе. Напишите break;, прежде чем писать следующий случай для каждого. Также добавьте случай по умолчанию.

+0

Вы правы, большое вам спасибо, я полностью забыл. Можете ли вы просто ответить на другой вопрос, связанный с этим фрагментом кода. С этим кодом у меня есть URL-адрес открытия в внешнем браузере, хром. Есть ли способ, которым я могу сделать это открытым в приложении? Например, если я использовал главный поток данных, то url открывается в приложении, но здесь я использую expandablelistview, есть ли способ, которым я могу это сделать? –

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