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) 不适用于参数 (Object)。

那么如何获取 Message 对象发送的字符串矩阵呢?请不要建议我使用异步任务。

4

1 回答 1

1

我很愚蠢,只需将参数 msg.obj 转换为 String[][]:

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