Partage
  • Partager sur Facebook
  • Partager sur Twitter

Réutilisée une classe android

Sujet résolu
    24 juin 2013 à 20:59:54

    Bonsoir à tous, je programme sous Android avec Eclipse et j'ai un petit soucis plutôt gênant :

    Lorsque je créer une nouvelle classe toute simple, comme dans n'importe quelle projet java basique, je n'arrive pas à utiliser les classes d'android... Pourtant j'ai bien fait les imports nécessaires et j'ai même testé le import android.*;

    D'ou vient le problème ? Merci de votre aide

    • Partager sur Facebook
    • Partager sur Twitter
      25 juin 2013 à 15:14:47

      tu as bien télécharger le tout pour développer sur android ?

      Tu as un code ?

      Il te met quoi eclipse à côté de import android.*

      Si tu compiles ça donne quoi ?

      Tu as essayé de faire quoi ?

      Oui il manque quelques descriptions

      • Partager sur Facebook
      • Partager sur Twitter
        25 juin 2013 à 20:51:45

        Bonsoir, oui j'ai téléchargé le tout pour développer sur Android

        Mon problème est que je n'arrive pas à créer une classe, puis utiliser les classes d'android dans celle-ci

        Par exemple, j'ai créer une classe comme ci-dessous :

        package com.example.clientandoid;
        
        import java.io.DataInputStream;
        import java.io.FileInputStream;
        import android.*;
        
        public class OperationFiles{
        
        	public String lireFichier(String nomFichier) {
        
        		String donnee = null;
        		try
        		{
        			
        			FileInputStream fis = openFileInput(nomFichier);
        			DataInputStream dis = new DataInputStream(fis);
        			byte[] b = new byte[fis.available()];
        			dis.read(b, 0, fis.available());
        			donnee = new String(b);
        			Log.e("lireFichier()", donnee);
        			fis.close();
        			
        		}
        		catch (Exception e) {
        			e.printStackTrace();
        		}
        		
        		return donnee;
        	}
        }

        Malgré le import android.*; Eclipse me dit que openFileInput() , une methode de android.content.ContextWrapper, est introuvable. Il m'est impossible d'utiliser une methode propre au sdk android en dehors d'une classe qui hérite de Activity...

        Or il me semble qui l'on hérite une classe de Activity que si l'on veux créer une nouvelle activité, non ?

        -
        Edité par anthonyspartan007 25 juin 2013 à 21:01:51

        • Partager sur Facebook
        • Partager sur Twitter
          26 juin 2013 à 11:15:23

          je pense que tu n'as pas bien compris le fonctionnement du langage Objet.

          openFileInput est une méthode de la classe Context. Activity est une sous-sous-classe de Context.

          Pour faire appel à une méthode (non statique) d'une classe, tu dois absolument avoir une instance de cette classe.

          or ici tu fait appel à openFileInput comme si elle était implémentée dans la classe courante (OperationFiles).

          Tu dois absolument passer l'instance de ton Activité au ta classe OperationFiles pour faire comme ceci:

           

          public class OperationFiles{
           
              public String lireFichier(Context instanceDeTonActivite, String nomFichier) {
           
                  String donnee = null;
                  try
                  {
                       
                      FileInputStream fis = instanceDeTonActivite.openFileInput(nomFichier);
                      DataInputStream dis = new DataInputStream(fis);
                      byte[] b = new byte[fis.available()];
                      dis.read(b, 0, fis.available());
                      donnee = new String(b);
                      Log.e("lireFichier()", donnee);
                      fis.close();
                       
                  }
                  catch (Exception e) {
                      e.printStackTrace();
                  }
                   
                  return donnee;
              }
          }

          -
          Edité par freetibet 26 juin 2013 à 11:15:41

          • Partager sur Facebook
          • Partager sur Twitter
            26 juin 2013 à 15:24:58

            Merci pour ta réponse, je comprend mieux ce qu'est le context maintenant, c'est sûrement ce qui me bloquait dans mes raisonnements

            Merci encore pour m'avoir apporter votre aide 

            • Partager sur Facebook
            • Partager sur Twitter

            Réutilisée une classe android

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown