如何在AutoCompleteField中获取所选文本并通过post将其发送到服务器

时间:2012-06-20 13:47:46

标签: java post blackberry

我是黑莓开发的新手。我有几次遇到这个问题,即“如何将所选项目作为字符串”。给出的答案并没有完全回答这个问题:

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...
     }
 }

关键是如何我可以获得所选文本和“做某事”。想象一下,我想通过邮件将项目作为字符串发送到服务器。我怎么在代码中这样做?

谢谢!迈克尔。

1 个答案:

答案 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();
        }
     }
  };