0

問題は次のとおりです。

private void doSomething() {
  String[][] data = new String[h][w];
  Message msg = null;
  Thread t = new Thread() {
     public void run() {
       for(int i=0; i<max; i++) {
          data = doLongCalculationOnBackground(i);

          msg = messageHandler.obtainMessage();
          msg.obj = data;
          messageHandler.sendMessage(msg);
       }
     }
  };
  t.start();
}

private Handler messageHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        doUpdateUI(msg.obj); // error right here!!!
    }

};

private doUpdateUI(String[][] data) {
   // do update UI work.
}

Eclipse は、doUpdateUI(msg.obj) が引数 (オブジェクト) に適用できないことを警告します。

では、Message オブジェクトによって送信された文字列マトリックスを取得するにはどうすればよいでしょうか? Async Task の使用を提案しないでください。

4

1 に答える 1

1

私は愚かです。引数 msg.obj を String[][] にキャストするだけです。

doUpdateUI((String[][]) msg.obj);
于 2012-04-10T01:33:47.140 に答える