2011-02-15 5 views
0

Je crée une application dans laquelle, lorsque l'application démarre, l'utilisateur a la possibilité d'ajouter un fichier à l'application qui réside sur la carte mémoire. Il y a un bouton nommé add new; lorsque l'utilisateur clique sur add new un formulaire apparaîtra, dans lequel l'utilisateur va entrer le nom du fichier et peut ajouter le fichier, mais la commande pour l'ajout de nouveau fichier ne fonctionne pas quelqu'un peut-il me suggérer ce qui va mal là-bas?Java ME gérant plusieurs écrans

Mon extrait de code est

import javax.microedition.lcdui.*; 
import javax.microedition.midlet.*; 
import javax.microedition.io.file.*; 
import javax.microedition.io.Connector; 
import java.io.IOException; 
import java.util.*; 

public class HelloMIDlet 
    extends MIDlet 
    implements CommandListener { 
    private List list; 
    private Alert alert; 
    private Display display; 
    private Form form; 
    private TextField fname,fpath; 
    private Command select,remove,add,fadd,back,exit; 

    public HelloMIDlet() { 
    form=new Form("add new:"); 
    fname=new TextField("enter File Name","",40,TextField.ANY); 
    fpath=new TextField("enter File path","file:///SDCard/",50,TextField.ANY); 
    list = new List("Welcome", List.IMPLICIT); 
    remove=new Command("Remove Selected",Command.SCREEN,2); 
    exit=new Command("Exit",Command.EXIT,0); 
    select=new Command("Select",Command.SCREEN,1); 
    add=new Command("Add New",Command.SCREEN,2); 
    list.addCommand(exit); 
    list.addCommand(select); 
    list.addCommand(add); 
    list.addCommand(remove); 
    form.append(fname); 
    form.append(fpath); 
    list.setCommandListener(this); 
    } 
    public void startApp() { 

    display=Display.getDisplay(this); 
    display.setCurrent(list); 
    } 

    public void pauseApp() {} 

    public void destroyApp(boolean unconditional) {} 

    public void commandAction(Command c, Displayable s) { 
    if(c==exit) 
    { 
    notifyDestroyed(); 
    } 
    else if(c==add) 
    { 
    // display.setCurrent(form); 
    addfile(); 

    } 
    else if(c==remove) 
    { 

    } 
    else if(c==back) 
    { 
     display.setCurrent(list); 
    } 
    else if(c==fadd) 
    { 
     alert=new Alert("Open the file:","Would you like to open the current file??",null,null); 
     alert.setTimeout(Alert.FOREVER); 

    } 
    else if(c==list.SELECT_COMMAND) 
    { 

    } 
    } 
    public void addfile() 
    {fadd=new Command("add File",Command.SCREEN,0); 
    back=new Command("Back",Command.BACK,1); 
    form.addCommand(fadd); 
    form.addCommand(back); 

    form.setCommandListener(this); 
    display.setCurrent(form); 
    } 
} 

Répondre

1

Lorsque vous sélectionnez sur "Ajouter un fichier", la commande est déclenchée et gérée par commandAction, en particulier, ce morceau de code:

else if(c==fadd) 
{ 
    alert=new Alert("Open the file:","Would you like to open the current file??",null,null); 
    alert.setTimeout(Alert.FOREVER); 
    // You were creating a Alert instance, but not showing it, this line below is one you 
    // were missing 
    display.setCurrent(alert, list); 
} 

Vous pouvez utilisez setCurrent(Alert alert, Displayable nextDisplayable) ou setCurrent(Displayable nextDisplayable), selon ce dont vous avez besoin.

+0

C'est fondamentalement une application d'attandance, dans laquelle un dossier de csv sera stocké sur la carte de mémoire, et l'utilisateur peut ajouter ce dossier à l'application et quand il ajoute le dossier, il peut l'ouvrir pour éditer la participation. l'utilisateur aura le choix d'ouvrir ce fichier pour l'éditer. – CuriousCase

+0

lorsque je clique sur ajouter une commande de fichier, rien ne se passe réellement. Vous pouvez essayer ce code pour vous-même? – CuriousCase

+0

en fait je crée une application d'attandance et je veux qu'un utilisateur puisse sélectionner un fichier csv à partir de la carte mémoire pour l'édition. – CuriousCase

Questions connexes