Jump to content

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

Edited by gogui63
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...