【发布时间】:2015-05-01 08:58:23
【问题描述】:
我有一个应用程序正在显示带有来自 android Volley 的 NetworkImageView 小部件的片段。
在 NetworkImageView 中加载的 URL 上的图像每 5 秒更改一次,因此我想通过按我在操作栏中创建的重新加载按钮来更新此图像。
我发现了2个问题:
-
如果我再次调用此代码以加载图像(在 onActivityCreated() 方法创建片段时已调用它):
mNetworkImageView = (NetworkImageView) getView().findViewById(R.id.networkImageView); mImageLoader = VolleySingleton.getInstance(getActivity()).getImageLoader(); mNetworkImageView.setImageUrl(IMAGE_URL, mImageLoader);
所以什么都不会发生(它不是该链接的实际 IMG),我认为这是因为它现在是从缓存而不是从互联网加载 IMG。
-
如果我调用片段 reload() 方法:
public void reload(){ MainActivity activity = (MainActivity) getActivity(); IMAGE_URL = activity.getMyData(); mNetworkImageView = (NetworkImageView) getView().findViewById(R.id.networkImageView); mImageLoader = VolleySingleton.getInstance(getActivity()).getImageLoader(); mNetworkImageView.setImageUrl(IMAGE_URL, mImageLoader);
来自 MainActivity:
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
if (id == R.id.action_reload) {
ViewFragment fragment = new ViewFragment();
fragment.reload();
}
return super.onOptionsItemSelected(item);
}
单击操作栏重新加载按钮后应用程序出现 NullPointerException 错误。
重载();方法是我要重新加载 NetworkImageView 的地方。
谁能解释一下如何解决这个问题?
【问题讨论】:
标签: android android-fragments android-actionbar reload networkimageview