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();
}
}
});