IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Problème avec webview


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur Télécoms
    Inscrit en
    Décembre 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur Télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 67
    Points : 52
    Points
    52
    Par défaut Problème avec webview
    Bonjour je cherche a afficher une page html se trouvant dans mon dossier asset quand on clic sur une élément d une listview. Donc pour mon oncliclistener c resolu j ai essaye avec toast ça fonctionne ça m affiche bien une info comme quoi je clic. Don j ai remplace par ma fonction webview que j ai deja utilise pour des boutons et la rien ne se passse pourtant pas d erreurs de script je pense que la liaison entre mon oncliclistener mon parser et ma fonction webview n est pas bien realise il doit me manquer une variable. voici le code du Main.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    package com.essai;
     
    import java.io.InputStream;
    import java.util.List;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import android.widget.AdapterView.OnItemClickListener;
    import com.examples.R;
     
    public class Main extends Activity   { 
     
     
    	 private WebView mWebView;// variable mwebview
     
    	/** Called when the activity is first created. */
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
     
    		// Vue et titre du ficher listview
    		setContentView(R.layout.listview);
    		setTitle("essai");
     
    		// Creation du parser pour le fichier raw/countries.xml
    		CountryParser countryParser = new CountryParser();
    		InputStream inputStream = getResources().openRawResource(
    				R.raw.countries);
     
    		// parser
    		countryParser.parse(inputStream);
     
    		// Pour obtenir la liste
    		List<Country> countryList = countryParser.getList();
     
     
    		// Creation  de ladaptater ArrayAdapter
    		CountryArrayAdapter adapter = new CountryArrayAdapter(getApplicationContext(), R.layout.country_listitem, countryList);
     
    		// recuperation de notre listview
    		ListView lv = (ListView) this.findViewById(R.id.countryLV);
    		lv.setOnItemClickListener(new OnItemClickListener() {
          		@Override
     
          		// ecouteur  quand on clic dans notre listview
    			public void onItemClick(AdapterView<?> arg0,
    						View arg1, int arg2, long arg3) {
          			//le code à effectuer suite à un click ici pour afficher une page web
          			setContentView(R.layout.webview);
                	mWebView = (WebView) findViewById(R.id.webview);
                	final String nom = "help";
                    WebSettings webSettings = mWebView.getSettings();
                    webSettings.setSavePassword(false);
                    webSettings.setSaveFormData(false);
                    webSettings.setJavaScriptEnabled(true);
                    webSettings.setSupportZoom(false);                         
     
    				mWebView.loadUrl("file:///android_asset/divers/"+ nom+"html");
     
          		}
          		});
     
    		 //On passe nos données au composant ListView
    		lv.setAdapter(adapter);	
    	}
    }
    la variable help est juste la pour voir si mon code fonctionne bien et me retrouve le help.html .pourtant quand je fais ces manip sur un bouton cela fonctionne mais il est vrai que j ai pas de parser et de variable

  2. #2
    Jay
    Jay est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2002
    Messages : 124
    Points : 189
    Points
    189
    Par défaut
    Bonjour,

    Juste à la lecture rapide de ton code, il te manquerai pas le "." entre "help" et "html" ;-)

    Cordialement,
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur Télécoms
    Inscrit en
    Décembre 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur Télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 67
    Points : 52
    Points
    52
    Par défaut
    après pas mal de correction voila ce script que j ai trouve marche bien je parse bien m on fichier j ai creer mon listener il est identtifier l adaptater est crée et quand je clis sur un elemeent de la list ça n affiche pas la page html de mon dossier assets.avant j avais fais une list statique avec l exellent tuto de Le trocker Mickael, mais ayant trop de donner xml a recup j ai voulu parser avec ce script.donc ne sachant plus ou chercher je met les fichiers Main ,l adaptater, le parser si quelqu un peut me dire ou j ai péché merci a la communauté.
    le Main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
     
    package com.examples;
     
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
     
    import com.examples.CountryArrayAdapter.CountryAdapterListener;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.widget.ListView;
     
    public class Main extends Activity implements CountryAdapterListener{
     
     
    	private WebView mWebView;
    	/** Called when the activity is first created. */
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
     
    		// vue 
    		setContentView(R.layout.listview);
    		setTitle("TestIconizedListView");
     
    		// creation parser de  raw/countries.xml
    		CountryParser countryParser = new CountryParser();
    		InputStream inputStream = getResources().openRawResource(
    				R.raw.countries);
     
    		// parseur
    		countryParser.parse(inputStream);
     
    		// la liste des pays
    		List<Country> countryList = countryParser.getList();
     
     
    		// mon  ArrayAdapter
    		ArrayList<Country> arrayList= new ArrayList<Country>();
    		CountryArrayAdapter adapter = new CountryArrayAdapter(
    				getApplicationContext(), R.layout.country_listitem, countryList);
     
    		adapter.addListener(this);
     
    		//la reference de la listeview
    		ListView lv = (ListView) this.findViewById(R.id.countryLV);
     
    		// 
    		lv.setAdapter(adapter);
    	}
     
    	// mon on clic qui doir afficher la page html quelque soit l element de la liste cliquer
    	public void onClickNom(Country item, int position) {
    		setContentView(R.layout.webview);
        	mWebView = (WebView) findViewById(R.id.webview);
     
            WebSettings webSettings = mWebView.getSettings();
            webSettings.setSavePassword(false);
            webSettings.setSaveFormData(false);
            webSettings.setJavaScriptEnabled(true);
            webSettings.setSupportZoom(false);                         
            mWebView.loadUrl("file:///android_asset/divers/help.html");
    	}
     
    }
    Mon adaptater
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    package com.examples;
     
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
     
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
     
    public class CountryArrayAdapter extends ArrayAdapter<Country> {
     
    	private static final String tag = "CountryArrayAdapter";
    	private static final String ASSETS_DIR = "images/";
    	private Context context;
     
    	private ImageView countryIcon;
    	private TextView countryName;
    	private TextView countryAbbrev;
    	private List<Country> countries = new ArrayList<Country>();
     
    	public CountryArrayAdapter(Context context, int textViewResourceId,
    			List<Country> objects) {
    		super(context, textViewResourceId, objects);
    		this.context = context;
    		this.countries = objects;
    	}
     
    	public int getCount() {
    		return this.countries.size();
    	}
     
    	public Country getItem(int index) {
    		return this.countries.get(index);
    	}
     
    	public View getView(int position, View convertView, ViewGroup parent) {
    		View row = convertView;
    		if (row == null) {
    			// ROW INFLATION
    			Log.d(tag, "Starting XML Row Inflation ... ");
    			LayoutInflater inflater = (LayoutInflater) this.getContext()
    					.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    			row = inflater.inflate(R.layout.country_listitem, parent, false);
    			Log.d(tag, "Successfully completed XML Row Inflation!");
    		}
     
    		// Get item
    		Country country = getItem(position);
    		countryIcon = (ImageView) row.findViewById(R.id.country_icon);
    		countryName = (TextView) row.findViewById(R.id.country_name);
    		countryAbbrev = (TextView) row.findViewById(R.id.country_abbrev);
     
    		countryName.setText(country.name);
    		String imgFilePath = ASSETS_DIR + country.resourceId;
    		try {
    			Bitmap bitmap = BitmapFactory.decodeStream(this.context.getResources().getAssets()
    					.open(imgFilePath));
    			countryIcon.setImageBitmap(bitmap);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
     
    		countryAbbrev.setText(country.abbreviation);
     
    		return row;
    	}
     
        private ArrayList<CountryAdapterListener> mListListener = new ArrayList<CountryAdapterListener>();
        public void addListener(CountryAdapterListener aListener) {
        	mListListener.add(aListener);
        }
     
    	private void sendListener(Country item, int position) {
        	for(int i = mListListener.size()-1; i >= 0; i--) {
        		mListListener.get(i).onClickNom(item, position);
        	}
        }
     
        /**
         * Interface pour écouter les évènements sur le nom d'une personne
         */
        public interface CountryAdapterListener {
        	public void onClickNom(Country item, int position);
        }
     
    }
    mon country

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    package com.examples;
     
    public class Country {
    	public String name;
    	public String abbreviation;
    	public String region;
    	public String resourceId;
     
    	public Country() {
    		// TODO Auto-generated constructor stub
    	}
     
    	public Country(String name, String abbreviation, String region,
    			String resourceFilePath) {
    		this.name = name;
    		this.abbreviation = abbreviation;
    		this.region = region;
    		this.resourceId = resourceFilePath;
    	}
     
    	@Override
    	public String toString() {
    		return this.name;
    	}
    }
    Bien sur j ai mis a jour les nom de variable pour les liaisons entre les trois classe, voila et en attendant BON REVEILLON A TOUS et A TOUTES

  4. #4
    Membre du Club
    Homme Profil pro
    Administrateur Télécoms
    Inscrit en
    Décembre 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur Télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 67
    Points : 52
    Points
    52
    Par défaut Merci au forum
    Voial en regardant j ai trouve ma réponse sur le forum concernant le onclislistener donc je clos ce poste car il engorge pou rien le forum merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec WebView
    Par sssbenj dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 06/09/2011, 11h38
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo