我是黑莓开发的新手。我有几次遇到这个问题,即“如何将所选项目作为字符串”。给出的答案并没有完全回答这个问题:
AutoCompleteField autoCompleteField = new AutoCompleteField(filterList)
{
public void onSelect(Object selection, int SELECT_TRACKWHEEL_CLICK) {
ListField _list = getListField();
if (_list.getSelectedIndex() > -1) {
Dialog.alert("You selected: "+_list.getSelectedIndex());
// get text selected by user and do something...
}
}
关键是如何我可以获得所选文本和“做某事”。想象一下,我想通过邮件将项目作为字符串发送到服务器。我怎么在代码中这样做?
谢谢!迈克尔。
答案 0 :(得分:1)
这些(至少)是两件不同的事情。
要获取所选文字see this answer
发送HTTP POST请求see this other answer
通常,在UI线程上发出网络请求也是不好的(这将回调你的onSelect()
方法)。因此,最好从第二个答案中获取HTTP POST代码,并将其放在可以在后台线程上运行的run()
对象的Runnable
方法中。像这样:
private class PostRequest implements Runnable {
private String _postParam;
public PostRequest(String param) {
_postParam = param;
}
public void run() {
// make POST request here, using _postParam
}
}
并像这样使用它:
AutoCompleteField acf = new AutoCompleteField(list) {
protected void onSelect(Object selection, int type) {
super.onSelect(selection, type);
if (selection != null) {
String selectionAsString = getEditField().getText();
Thread worker = new Thread(new PostRequest(selectionAsString));
worker.start();
}
}
};