0

私はブラックベリーの開発に不慣れです。私が何度か出くわしたこの質問があります。それは「選択されたアイテムを文字列として取得する方法」です。与えられた答えは質問に完全には答えませんでした:

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

重要なのは、選択したテキストを取得して「何かをする」方法です。アイテムを文字列としてサーバーに郵送したいとします。コードでそれをどのように行うのですか?

ありがとうございました!マイケル。

4

1 に答える 1

1

これらは実際には (少なくとも) 2 つの異なるものです。

選択したテキストを取得するには、この回答を参照してください

HTTP POST リクエストを送信するには、この他の回答を参照してください

通常、UI スレッド (メソッドをコールバックするスレッド) でネットワーク リクエストを行うのも良くありませんonSelect()。したがって、2 番目の回答から 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();
        }
     }
  };
于 2012-06-22T07:51:53.767 に答える