gpt4 book ai didi

java - 在位于 onViewCreated() 外部的 Runnable 内部使用 Glide

转载 作者:行者123 更新时间:2023-12-02 11:46:27 24 4
gpt4 key购买 nike

我正在使用 Glide 函数从服务器响应加载图像。下面的代码在 onViewCreated 函数内正常工作,但我想创建一个 Handler 来验证互联网连接,并且我声明 Runnable作为全局变量。在 Runnable 内部,我无法使用 getActivity 作为上下文/容器。我应该使用什么?

这是onViewCreated()内的代码:

        try {
Glide.with(this.getActivity()).load(jsonObject.getString("dispensary_thumbmail")).into(image);
} catch (JSONException e) {
e.printStackTrace();
}

这是可运行:

    Runnable runnable = new Runnable() {

@Override
public void run() {
if(!isNetworkConnected())
{
handler.postDelayed(runnable , time);
}
else
{
try {
jsonObject = new JSONObject(MainActivity.dispensaries);
jsonArray = jsonObject.optJSONArray("dispensaries");
Log.e(TAG, "jsonArray = " + jsonArray);
jsonObject = null;
} catch (JSONException e) {
e.printStackTrace();
}
for (int i = 0; i < jsonArray.length(); i++) {
try {
JSONObject object = jsonArray.getJSONObject(i);
if(MainActivity.ID.equals(object.get("dispensary_id")))
{
jsonObject = object;
}
} catch (JSONException e) {
e.printStackTrace();
}
}
try {
Glide.with(this.).load(jsonObject.getString("dispensary_thumbmail")).into(image);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
};

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {

最佳答案

尝试一下,基本上,您需要 Activity 类的runOnUiThread

    getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
try {
Glide.with(getActivity()).load(jsonObject.getString("dispensary_thumbmail")).into(image);
} catch (JSONException e) {
e.printStackTrace();
}
}
});

关于java - 在位于 onViewCreated() 外部的 Runnable 内部使用 Glide,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48168874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com