ListField に 3 つの行を追加して、リストが次のように表示されるようにする簡単な例を教えてください。
アイテム1
項目 2
アイテム3
ユーザーがアイテムの1つを選択できるリストを表示したいだけで、選択したアイテムに応じてプログラムが何かを実行します。
私はインターネット全体を検索しましたが、これを行う方法の簡単な例を見つけることは不可能のようで (私が見つけたほとんどの例は不完全です)、blackberry のドキュメントはひどいものです。
ありがとう!
ListField に 3 つの行を追加して、リストが次のように表示されるようにする簡単な例を教えてください。
アイテム1
項目 2
アイテム3
ユーザーがアイテムの1つを選択できるリストを表示したいだけで、選択したアイテムに応じてプログラムが何かを実行します。
私はインターネット全体を検索しましたが、これを行う方法の簡単な例を見つけることは不可能のようで (私が見つけたほとんどの例は不完全です)、blackberry のドキュメントはひどいものです。
ありがとう!
おそらく、ObjectListField の使用を検討したいと思うでしょう。選択アクションの処理は、含まれている Screen オブジェクトを介して行われます。以下では MenuItem を使用してこれを行いました。デフォルトの選択リスナーを設定する方法がよくわかりません。キー イベントとトラックホイール イベントを検出する必要があるかもしれません。
あなたのためのいくつかのサンプルコード: (テストされていません!)
MainScreen screen = new MainScreen();
screen.setTitle("my test");
final ObjectListField list = new ObjectLIstField();
String[] items = new String[] { "Item 1", "Item 2", "Item 3" };
list.set(items);
screen.addMenuItem(new MenuItem("Select", 100, 1) {
public void run() {
int selectedIndex = list.getSelectedIndex();
String item = (String)list.get(selectedIndex);
// Do someting with item
});
screen.add(list);
次のように、navigationClick メソッドをオーバーライドできます。
ObjectListField list = new ObjectListField()
{
protected boolean navigationClick(int status, int time)
{
// Your implementation here.
}
};
final class SimpleListScreen extends MainScreen
{
public SimpleListScreen()
{
super(Manager.NO_VERTICAL_SCROLL);
setTitle("Simple List Demo");
add(new LabelField("My list", LabelField.FIELD_HCENTER));
add(new SeparatorField());
Manager mainManager = getMainManager();
SimpleList listField = new SimpleList(mainManager);
listField.add("Item 1");
listField.add("Item 2");
listField.add("Item 3");
}
}
//add listener so that when an item is chosen,it will do something
private ListField fList = new ListField(){
protected boolean navigationClick(int status, int time) {
System.out.println("omt Click");
return true;
};
};
オーバーライドすることで、各リスト項目のクリックを検出できます
protected boolean navigationClick(int status,int time)
次に、クリックに応じて何をすべきかを考え出す必要があります。私がこれを行った方法は、リスト項目ごとに設定された匿名クラスを使用することでした。