2010-10-19 51 views
0

我在執行操作後正在創建新按鈕的FieldChangeListener時遇到了一些問題。我有一個ButtonFields列表,當我創建一個新的VoiceNote時,會添加一個鏈接到該VoiceNote的新ButtonField。BlackBerry上的按鈕操作問題

我在另一個屏幕上創建了一個要編輯的新語音筆記,當該屏幕關閉時,筆記將添加到我的數據庫中,並且新按鈕將添加到列表中。該按鈕被正確添加,但當我點擊它時,它什麼都不做。

的菜單項的調用,這是的代碼如下:

private final class NewNote extends MenuItem 
{ 
    Vector _voiceNotes; 
    ListStyleButtonField _nuevoBoton; 
    public NewNote(Vector voiceNotes) 
    { 
     super("New Voice Note",0,0); 
     _voiceNotes = voiceNotes; 
    } 

    public void run() { 
     VoiceNote newNote = new VoiceNote("", "", null); 
     UiApplication.getUiApplication().pushModalScreen(new RecordScreen(_managerBD, newNote)); 
     if(newNote.get_id() != -1) 
     { 
      _voiceNotes.addElement(newNote); 
      _nuevoBoton = new ListStyleButtonField(newNote.get_nombre(), 0); 
      add(_nuevoBoton); 

      newNote.set_noteIndex(_nuevoBoton.getIndex()); 
      UiApplication.getUiApplication().invokeAndWait(new Runnable() { 
       public void run() { 
        _nuevoBoton.setChangeListener(UiApplication.getUiApplication().getActiveScreen().getChangeListener()); 
       } 
      }); 
      UiApplication.getUiApplication().relayout(); 
     } 
    } 
} 

回答

0

您設置的改變監聽器是一樣的任何變化監聽器設置爲活動畫面。你是否爲活動屏幕設置了更改監聽器?

+0

不,我沒有設置它。但是,當我設置我的按鈕加載時,我總是做button.setChangeListener(this)我認爲「this」是屏幕的變化監聽器,在這種情況下什麼是等效的? – 8vius 2010-10-20 19:04:27

+0

解決了我將監聽器設置爲_nuevoBoton.setChangeLister((SavedNotesScreen)UiApplication.getUiApplication()。getActiveScreen())時發生的問題,因爲我的SavedNotesScreen類實現了所需的全部變更偵聽器 – 8vius 2010-10-22 19:41:07