Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在置于onViewCreated()外部的Runnable中使用Glide_Java_Android - Fatal编程技术网

Java 在置于onViewCreated()外部的Runnable中使用Glide

Java 在置于onViewCreated()外部的Runnable中使用Glide,java,android,Java,Android,我正在使用Glide函数从服务器响应加载图像。下面的代码在onViewCreated函数中正常工作,但我想创建一个处理程序来验证internet连接,并且我将Runnable声明为全局变量。在Runnable中,我不能使用getActivity作为上下文/容器。我应该用什么 以下是onViewCreated()中的代码。: 下面是可运行的: Runnable runnable = new Runnable() { @Override public void run()

我正在使用
Glide
函数从服务器响应加载图像。下面的代码在
onViewCreated
函数中正常工作,但我想创建一个
处理程序来验证internet连接,并且我将
Runnable
声明为全局变量。在
Runnable
中,我不能使用
getActivity
作为上下文/容器。我应该用什么

以下是onViewCreated()中的代码。

下面是
可运行的

    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) {
Runnable Runnable=new Runnable(){
@凌驾
公开募捐{
如果(!isNetworkConnected())
{
handler.postDelayed(可运行,时间);
}
其他的
{
试一试{
jsonObject=新的jsonObject(MainActivity.Dispures);
jsonArray=jsonObject.optJSONArray(“药房”);
Log.e(标记“jsonArray=“+jsonArray”);
jsonObject=null;
}捕获(JSONException e){
e、 printStackTrace();
}
for(int i=0;i
试试这个,基本上,你需要活动类的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();
            }
        }
    });

我在一个片段中。这是显而易见的,因为一个活动需要onCreate()而不是onViewCreated()作为片段。谢谢。它起了作用。这有点棘手,但很有帮助。下面是它应该做的:Glide.with(getActivity()).load(jsonObject.getString(“药房”\u thumbmail”)。加载到(图片);我一看到你的代码就意识到了。酷,你应该看看这个
    getActivity().runOnUiThread(new Runnable() {
        @Override
        public void run() {
            try {
                Glide.with(getActivity()).load(jsonObject.getString("dispensary_thumbmail")).into(image);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });