2012-01-27 4 views
1

Можно создать дубликат:
Desigining a Form in j2meDesigining Формы в j2me

Я создал форму с ул 1 и 2, как ул StringItem и добавил их по форме.
Затем я добавил метод addCommand() в str1 и str2, и когда я нажимаю кнопку «Далее», при нажатии на категорию 2 StringItem должно отображаться предупреждение как категория 1 при нажатии на категорию 1 и категорию 2.
Пожалуйста, предложите решение
Что мне следует писать в цикле метода Action Action(), так что, когда я нажимаю на str1, он должен отображать категорию 1 и когда на str2 ... category 2?

код ниже, выше вопрос в комментариях в commandAction методе

import javax.microedition.lcdui.Alert; 
import javax.microedition.lcdui.AlertType; 
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.StringItem; 
import javax.microedition.midlet.MIDlet; 
import javax.microedition.midlet.MIDletStateChangeException; 


public class Menu extends MIDlet implements CommandListener { 
    Command Next ; 
    Display display; 
    Form form; 
    StringItem str1,str2; 
    public Menu() { 
     // TODO Auto-generated constructor stub 
     str1=new StringItem("1. ", "Category 1"); 
     str2=new StringItem("2.", "Category 2"); 
     form=new Form("Menu"); 
     form.append(str1); 
     form.append(str2); 
     Next=new Command("Next",Command.SCREEN, 1); 
     str1.addCommand(Next); 
     str2.addCommand(Next); 
     form.addCommand(Next); 
     form.setCommandListener(this); 
    } 


    protected void destroyApp(boolean arg0) throws MIDletStateChangeException { 
     // TODO Auto-generated method stub 

    } 

    protected void pauseApp() { 
     // TODO Auto-generated method stub 

    } 

    protected void startApp() throws MIDletStateChangeException { 
     // TODO Auto-generated method stub 
     display=Display.getDisplay(this); 
     display.setCurrent(form); 
    } 


    public void commandAction(Command c, Displayable d) { 
     // TODO Auto-generated method stub 
    if(c==Next) 
    { 
     if(/* What should I write here? */) 
     { 
     Alert alert=new Alert(null, "This is ", null, AlertType.INFO); 
     display.setCurrent(alert, form); 
     } 
    } 
    } 

} 

ответ

1

Следующая команда необходима только для формы и не требуется для str1 и str2. Фактически вы можете иметь Список, который состоит из категорий. Так что в вашем меню() конструктор

Public Menu() { 

display = Display.getDisplay(this); 
// Create a multiple choice list 
lsPrefs = new List("Categories", List.MULTIPLE); 

// Append options, with no associated images 
lsPrefs.append("Category-1", null); 
lsPrefs.append("Category-2", null); 

cmNext = new Command("Next", Command.SCREEN,2); 

// Add commands, listen for events 

lsPrefs.addCommand(cmNext); 
lsPrefs.setCommandListener(this); 
} 

и в классе commandAction вы можете получить доступ к категории, выбранные

public void commandAction(Command c, Displayable s){ 
    if (c == cmNext) 
    { 
    boolean selected[] = new boolean[lsPrefs.size()]; 

    // Fill array indicating whether each element is checked 
    lsPrefs.getSelectedFlags(selected); 

    for (int i = 0; i < lsPrefs.size(); i++){ 
     if(selected[i]) 
       Alert(....); 
    } 


} 
+0

Можете ли вы предложить любую другую альтернативу без использования неявного списка ..., так как я должен добавить заголовок изображения в форму, которая не может быть выполнена с помощью списка – Yatin

+0

И без использования класса холста тоже – Yatin

+0

Rocky .. пожалуйста, скажите мне решение f или это для вышеуказанной проблемы без использования класса Canvas или использования неявного списка – Yatin