2013-03-03 2 views
0

J'ai une liste de fichiers et quand l'utilisateur enregistre un fichier, je veux rafraîchir la liste pour que le nouveau fichier apparaisse. C'est ce que j'ai essayé.Pourquoi ma liste n'est-elle pas rafraîchissante?

private IconifiedTextListAdapter itla = new IconifiedTextListAdapter(this); 

...

private void saveAs(){ 
       AlertDialog.Builder alert = new AlertDialog.Builder(this); 

       alert.setTitle("Save as"); 
       alert.setMessage("(Will be saved in the current working directory)"); 

       // Set an EditText view to get user input 
       final EditText input = new EditText(this); 
       alert.setView(input); 

       alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
        String value = input.getText().toString(); 
        String tmpText = et.getText().toString(); 

        try { 
        File tempfile = new File(currentDirectory, value); 
        FileWriter writer = new FileWriter(tempfile); 
         writer.write(tmpText); 
         writer.flush(); 
         writer.close(); 
         changed=false; 
         itla.notifyDataSetChanged(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
       e.printStackTrace(); 
       } 
        } 
       }); 
+0

Vous semblez ne jamais utiliser l'adaptateur supplémentaire (par exemple obtenir/ajoutant). Je ne pense pas qu'il y ait quelque chose à rafraîchir. –

+1

Merci :) J'appelle fill() pour remplir la liste dans onCreate() mais j'ai oublié de l'appeler à nouveau dans saveAs() je me sens stupide. – RapsFan1981

+0

S'il vous plaît ajouter la réponse et le marquer comme résolu, il peut aider les autres .. –

Répondre

0
private void saveAs(final Intent intent) { 
    AlertDialog.Builder alert = new AlertDialog.Builder(this); 

    alert.setTitle("Save as"); 
    alert.setMessage("(Will be saved in the current working directory)"); 

    // Set an EditText view to get user input 
    final EditText input = new EditText(this); 
    input.setText(ending); 
    alert.setView(input); 

    alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      String value = input.getText().toString(); 
      String tmpText = et.getText().toString(); 
      if (!value.contains(".")) { 
       value = value + ending; 
      } 

      try { 
       File tempfile = new File(currentDirectory, value); 
       FileWriter writer = new FileWriter(tempfile); 
       writer.write(tmpText); 
       writer.flush(); 
       writer.close(); 
       changed = false; 
       exists = true; 
       String newFile = new File(currentDirectory + "//" + value) 
         .getPath(); 
       currentFile = new File(newFile); 
       fill(currentDirectory.listFiles()); 
       Log.i("saveAs", currentFile.getPath()); 
       return; 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    }); 
+0

Vous ne savez pas comment faire le formatage du code dans une réponse. – RapsFan1981

+0

De la même manière que dans une question - utilisez le bouton qui le fait automagiquement ou ajouter 4 espaces devant chaque ligne de code. Je suis allé de l'avant et l'ai fait pour vous si :) – thegrinner

Questions connexes