我可以使用runOnUiThread更新UI(new Runnable(){。
我认为还有另一种使用Handler更新UI的方法。您能否告诉我如何使用处理程序更新UI。
我喜欢那样
@Override
public void getWebserviceResponse(final String result) {
// TODO Auto-generated method stub
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
refreshUi(result);
}
});
}
我将如何使用处理程序实现同样的目标?
更新
private Handler messageHandler = new Handler() {
public void handleMessage(Message msg) {
final int what = msg.what;
switch(what) {
case DO_UPDATE_TEXT: doUpdate(); break;
}
}
};
@Override
public void getWebserviceResponse(final String result) {
messageHandler.sendEmptyMessage(DO_UPDATE_TEXT);
}
我需要使用 DO_UPDATE_TEXT
发送字符串结果答案 0 :(得分:0)
private final Handler handler = new Handler() {
public void handleMessage(String result) {
if ((null != response)) {
// ALERT MESSAGE
refreshUi(result);
}
else
{
// ALERT MESSAGE
Toast.makeText(
getBaseContext(),
"Not Result to show",
Toast.LENGTH_SHORT).show();
}
}
};
答案 1 :(得分:0)
final Handler h = new Handler();
h.post(new Runnable() {
@Override
public void run() {
long millis =(long)currentTime(); // Get current time in Milli Seconds
dateAndTime.setText(getDate(millis, "dd/MM/yyyy hh:mm:ss.SSS")); // Set it as Date&Time
h.postDelayed(this, 1000);
}
});
答案 2 :(得分:0)
尝试这样可以帮到你,
private Handler messageHandler = new Handler() {
public void handleMessage(Message msg) {
final int what = msg.what;
switch(what) {
case DO_UPDATE_TEXT:
String result = msg.arg1;
doUpdate();
break;
}
}
};
@Override
public void getWebserviceResponse(final String result) {
Message msg = handler.obtainMessage();
msg.what = DO_UPDATE_TEXT;
msg.obj = result;
messageHandler.sendMessage(msg);
}