ポップアップ画面にリストフィールドを配置しようとしています。リストはきちんと来ています。しかし、リストの特定の行をクリックすると、イベントが発生しません。ダイアログを表示して試してみました。しかし、それも機能していません。これが私のコードです:
public class AttachmentListPopup extends PopupScreen implements FieldChangeListener{
private ListField _listField;
private Vector _listElements;
public AttachmentListPopup()
{
super(new VerticalFieldManager());
_listElements = new Vector();
_listField = new ListField();
ListCallback _callback = new ListCallback()
{
public boolean navigationClick(int status, int time)
{
int index = _listField.getSelectedIndex();
if(index == 0)
{
Dialog.alert("Grocery Clicked");
}
else if(index == 1)
{
Dialog.alert("To Do's Clicked");
}
return true;
}
};
_listField.setCallback(_callback);
initializeList();
add(_listField);
}
private void initializeList()
{
String itemOne = "Grocery";
String itemTwo = "To Do's";
_listElements.addElement(itemOne);
_listElements.addElement(itemTwo);
_listField.setSize(_listElements.size());
_listField.setRowHeight(Display.getHeight()/6);
}
private class ListCallback implements ListFieldCallback
{
public void drawListRow(ListField list, Graphics g, int index, int y, int w)
{
y = y +20;
String text = (String)_listElements.elementAt(index);
g.drawText(text, (Display.getWidth() - getFont().getAdvance(text))/2, y, 0 , w);
}
public Object get(ListField list, int index)
{
return _listElements.elementAt(index);
}
public int indexOfList(ListField list, String prefix, int string)
{
return _listElements.indexOf(prefix, string);
}
public int getPreferredWidth(ListField list)
{
return Display.getWidth();
}
}
public void fieldChanged(Field field, int context) {
// TODO Auto-generated method stub
}
}
あなたが問題を見つけたら、それは大きな助けになります..ありがとう。