在使用 volley 库时,如果我想更新响应侦听器中的 listview 适配器,是否应该使用 runOnUiThread 来完成?或者它已经在 UiThread 中了?
问问题
1249 次
2 回答
1
当适配器尝试修改视图对象时,您可能会遇到以下异常:
android.view.ViewRoot$CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触摸其视图。
因此,为了安全起见,请执行以下操作:
geyActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
于 2016-05-12T19:50:59.233 回答
0
来自凌空响应的呼叫处理程序
@Override
public void onResponse(String response) {
Log.d("Response is: ", response);
rui = response; // i put response to public String variable rui
myHandler.post(updateRunnable);
parseJSON(response);
}
并在 onCreate Activity
myHandler = new Handler();
updateRunnable = new Runnable() {
public void run() {
//call the activity method that updates the UI
updateUI();
}
};
以及您对 updateUI 的更新
public void updateUI(){
t.setText(rui);
}
并确保您的小部件 id 确实存在。
<TextView
android:id="@+id/konten"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
于 2017-12-02T12:59:02.250 回答