0
내 질문에 대해 매우 짧은 테스트 케이스 (아래)를 준비했습니다.Blackberry : 목록에서 항목을 선택하고 이전 화면으로 돌아갑니다.
버튼을 클릭하면 새 화면에 문자열 목록을 표시하고 싶습니다.
사용자가 목록에서 항목을 하나 선택하면 이전 화면이 다시 표시되고 단추 레이블이 선택한 문자열로 설정되어야합니다.
내이 문제는 다음과 같습니다
메뉴 내에서- 나는 현재 표시된 화면을 팝업하는 방법을 모르는 다른 하나의 화면에서 선택한 항목을 전달하는 방법을
- (임시 해결책으로 공용 변수/메소드를 도입하지 않으려는 경우)
필요한 c를 제안하십시오. 대한 hanges 내 SRC \ myPackage에 \ MyList.java :
package mypackage;
import java.util.*;
import net.rim.device.api.collection.*;
import net.rim.device.api.collection.util.*;
import net.rim.device.api.system.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.decor.*;
import net.rim.device.api.util.*;
import net.rim.device.internal.i18n.*;
public class MyList extends UiApplication implements FieldChangeListener {
MyScreen myScreen = new MyScreen();
public static void main(String args[]) {
MyList app = new MyList();
app.enterEventDispatcher();
}
public MyList() {
MainScreen titleScreen = new MainScreen();
titleScreen.setTitle("Click the button:");
// TODO change the label of this button (see below)
ButtonField myButton = new ButtonField("Show the list", ButtonField.CONSUME_CLICK);
myButton.setChangeListener(this);
titleScreen.add(myButton);
pushScreen(titleScreen);
}
public void fieldChanged(Field field, int context) {
pushScreen(myScreen);
}
}
class MyScreen extends MainScreen {
ObjectListField myList = new ObjectListField();
public MyScreen() {
setTitle("Select an item below:");
myList.set(new String[] { "Item 1", "Item 2", "Item 3", "Item 4", });
add(myList);
addMenuItem(myMenu);
}
private final MenuItem myMenu = new MenuItem("Select item", 0, 0) {
public void run() {
int index = myList.getSelectedIndex();
if (index < 0)
return;
String item = (String) myList.get(myList, index);
Status.show("Selected: " + item);
// TODO how to return to the previous screen here?
// TODO how to call myButton.setLabel(item) here?
}
};
}
감사합니다! 알렉스