JavaME_SUPER()_jak wstawić zamiast append linijki string[] ?

0

Witam
uczę się tworzenia głównego menu za pomocą komendy "SUPER"
pytanie jest takie zamiast pisać co linijkę append("", null); to chciałbym zamienić komendę na string[].
Za pomocą list umie stawić zamienić append na string[], ale za pomocą super jestem zielony.
dobrze by było jakby można było wczytać dane z pliku.

fragment kodu z dolnego

    private final String[] aa = 
    {
        "First", "Second", "Third", "Fourth"
    };
        
     //   private List menua = new List("",3, aa, null);   
	
        public Menu()
	{
	//	super("Menu_Główne", List.IMPLICIT);
            super("Menu_Główne", menua);

cały kod


import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
 
 
public class Midlet extends MIDlet
{
	private Menu menu = null;
	public static Display display = null;
	
	public Midlet()
	{
		//super();
	}
	
	public void startApp()
	{
		menu = new Menu();
		display = Display.getDisplay(this);
		display.setCurrent(menu);
	}
	public void pauseApp()
	{}
	public void destroyApp(boolean unconditional)
	{
		display.setCurrent(null);
		display = null;
		notifyDestroyed();
	}
}
 
 
class Menu extends List implements CommandListener
{
	//BasicUI.display = Display.getDisplay(new BasicUI());
	ShowForm show = null; 
    private final String[] aa = 
    {
        "First", "Second", "Third", "Fourth"
    };
        
//        private List menua = new List("",3, aa, null);   
	
        public Menu()
	{
	//	super("Menu_Główne", List.IMPLICIT);
            super("Menu_Główne", menua);
		append("Show Form", null);
		append("Show Alert", null);
		
		setCommandListener(this);
		
	}
	
	public void commandAction(Command c, Displayable d)
	{
		int ind = getSelectedIndex();
		String str = getString(ind);
		 
	}
}
class ShowForm extends Form
{
	TextField tx;
	
	public ShowForm()
	{
		super("ShowForm");
		tx = new TextField("text","",30, TextField.ANY);
		append(tx);
	}
}  

dziękuje za odpowiedz

0

jeden problem rozwiązałem

zmieniłem private final na
public static String[] aa =
{
"First", "Second", "Third", "Fourth"
};
tylko nie wiem jak odczytać zdane z pliku

0

Jak widzę, to po swojemu rozszerzasz klasę List - i korzystając z super, tak naprawdę najpierw wywołujesz konstruktor klasy bazowej. Nie bardzo rozumiem, w czym problem - tutaj jest normalna (SE) Java, bez żadnych kruczków ;).

Do odczytywania danych z plików korzystam z takiego zawiłego sposobu:

InputStream is = Class.forName("Midlet").getResourceAsStream(nazwa_pliku);

Z czego nazwa_pliku odnosi się do pliku, który siedzi w zasobach aplikacji. Zasoby aplikacji konfigurujesz w NetBeansie tak: Properties projektu, kategoria Libraries & Resources i za pomocą przycisku Add Folder dodajesz folder (z interesującymi Cię plikami), który zostanie zespawany z gotową aplikacją.

W wyniku wywołania powyższej metody dostaniesz InputStreama, z którego potem korzystasz jak z każdego strumienia.

Jeżeli tworzysz aplikacje na nowsze urządzenia (MIDP przynajmniej 2.0), to istnieje klasa FileConnector - ale z niej nie korzystałem, więc chyba nie pomogę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1