2011-09-24 6 views
3

Je développe une petite application qui exécute des commandes de shell et affiche la sortie disons par exemple la commande ping. L'application a un edittext qui prend le nom d'hôte ou IP en entrée de l'utilisateur et un bouton pour exécuter la commande. Pour l'instant, j'ai utilisé un ArrayList qui stocke la sortie générée après l'exécution de la commande. Mais ce n'est pas une manière correcte d'afficher la sortie, je préfère plutôt afficher la sortie dynamiquement comme un affichage de ligne de commande autonome qui affiche la sortie ligne par ligne à l'exécution. Existe-t-il un moyen spécifique d'afficher la sortie pendant l'exécution.Comment afficher dynamiquement la sortie dans Android?

Voici le code

protected void executePingCommand() { 
      List<String> output=new ArrayList<String>(); 
      output.clear(); 
      try 
      { 

      Process pr=Runtime.getRuntime().exec(new String[]{"su","-c","ping -c 5 "+ipadd});  
      BufferedReader br=new BufferedReader(new InputStreamReader(pr.getInputStream())); 
      String var=null; 
      String temp=br.readLine(); 
       while((var=br.readLine())!=null) 
        { 
         output.add(var);       
         display(output); 
        }   
      }                
     catch(Exception e) 
      { 

      } 
} 

protected void display(List<String> output2) { 
    // TODO Auto-generated method stub 
    pingOutput.setAdapter(new ArrayAdapter<String>(this, R.layout.custom_list_view, output2)); 
    return; 
} 

Répondre

0

Sons comme vous devez installer un exécutable qui exécute avec un onclicklistener. Types d'utilisateurs IE dans l'adresse IP, cliquez sur le bouton. Il actualise ensuite votre vue pour afficher le nouvel élément.

+0

Merci @maebe ... J'ai implémenté AsyncTask Class pour que la sortie soit affichée dans l'interface utilisateur elle-même. – Unnikrishnan

Questions connexes