Aller au contenu

ListView et Webview dans TabHost


gogui63

Recommended Posts

Bonjour, je ne sais pas si je suis bien dans la bonne catégorie mais je vais quand même exposer mon problème.

Voici à quoi je souhaiterais arriver : 

 

post-13062-0-12482100-1391025356_thumb.p

 

J'ai 4 onglets qui sont composés de ListView, j'aimerais que lorsque je clique sur un item d'une listView , une Webview apparaisse et que lorsque je slide de droite à gauche ou de gauche à droite je puisse changer de page SANS QUE LES ONGLETS DISPARAISSENT (c'est là où je bloque).

 

Voila mon code : 

 

Pour les onglets : 

public class Tab extends TabActivity {
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	 super.onCreate(savedInstanceState);
         requestWindowFeature(Window.FEATURE_NO_TITLE);
         setContentView(R.layout.main);
         Resources res = getResources();
         TabHost tabHost = getTabHost();
         TabHost.TabSpec spec;
         Intent intent;  
       
         
            
         
      intent = new Intent().setClass(this, Tab1.class);
      spec = tabHost.newTabSpec("Tab1").setIndicator("Tab1", res.getDrawable(R.drawable.cours)).setContent(intent);
      tabHost.addTab(spec);
      intent = new Intent().setClass(this, Tab2.class);
      spec = tabHost.newTabSpec("Tab2").setIndicator("Tab2", res.getDrawable(R.drawable.annales)).setContent(intent);
      tabHost.addTab(spec);       
      intent = new Intent().setClass(this, Tab3.class);
      spec = tabHost.newTabSpec("Tab3").setIndicator("Tab3", res.getDrawable(R.drawable.themes)).setContent(intent);
      tabHost.addTab(spec);      
      intent = new Intent().setClass(this, Tab4.class);
      spec = tabHost.newTabSpec("Tab4").setIndicator("Tab4", res.getDrawable(R.drawable.corriges)).setContent(intent);
      tabHost.addTab(spec);      
       
   }
}
public class Tab2 extends Activity implements OnClickListener {
	private ListView maListViewPerso2;

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.onglet2);
   
        Button button = (Button) findViewById(R.id.imageButtonSelector2);
        button.setOnClickListener(this);
         

        maListViewPerso2 = (ListView) findViewById(R.id.listView2);
        ArrayList<HashMap<String, String>> listItem= new ArrayList<HashMap<String, String>>();
        HashMap<String, String> map;
        map = new HashMap<String, String>();
        map.put("titre", "Item 1");
        map.put("img", String.valueOf(R.drawable.fleche));
        listItem.add(map);
        map = new HashMap<String, String>();
        map.put("titre", "Item 2");
        map.put("img", String.valueOf(R.drawable.fleche));
        listItem.add(map);
        map = new HashMap<String, String>();
        map.put("titre", "Item 3");
        map.put("img", String.valueOf(R.drawable.fleche));
        listItem.add(map);
        SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.afichageitem,
        		new String[] {"img", "titre" }, new int[] {R.id.fleche, R.id.titre});
        maListViewPerso2.setAdapter(mSchedule);



        //LISTENER

        maListViewPerso2.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {



                HashMap<String, String> map = (HashMap<String, String>) maListViewPerso2.getItemAtPosition(position);
                if(map.get("titre").equals("Item 1")) {
                    startActivity(new Intent(Tab2.this, test.class));
                    return;
                }
                if(map.get("titre").equals("Item 2")) {
                    startActivity(new Intent(Tab2.this, test2.class));
                    return;
                }
                if(map.get("titre").equals("Item 3")) {
                    startActivity(new Intent(Tab2.this, test3.class));
                    return;
                }
            }
        });

Apres lorsque je clique sur Item 1 (par exemple) un ViewPager s'affiche mais il recouvre mes onglets ...

J'ai regardé les Fragments , les ActivtyGroup mais rien de concluant ..

Pour le ViewPager j'ai utilisé ce tuto : 

 

http://www.tutos-android.com/fragment-slider-page-lautre

 

Sauf que je n'affiche pas du texte mais une webview (qui elle affiche une image) par page.

 

Si j'utilise un ActivityGroup j'arrive a garder mes onglets mais du coup je ne peux pas mettre deux webview, enfin ce n'est pas pratique pour par exemple zoomer sur la Webview1 puis de scroller jusqu'a la Webview2 (c'est pas mal buguer et pas facile d'utilisation)

 

Le but final est d'afficher une image par webview et que l'utilsateur puisse switcher d'onglets tout en gardant l'image active dans chaque onglet respectif.

J'ai aussi comme solution d'utiliser les ActivityGroup puis de changer de Webview grace à un boutton qui change l'image de la webview mais j'aimais bien le coté slide pour changer mon image.

 

Je suis ouvert à toute modifications, suggestions, que ça soit esthétique ou algorithmique ;)

Merci d'avance :D

Modifié par gogui63
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...