0

我正在尝试使用服务器上的图像更新 ImageView。我正在使用 Prime 库(https://github.com/DHuckaby/Prime)。但由于某种原因,它崩溃了。

img链接是:

http://192.168.1.36/testing/fotos/foto1.jpg

代码是这样的(注意它是一个片段,也许这是关键……):

public class MyFragmentA extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View myFragmentView = inflater.inflate(R.layout.fragment_a, container, false);
    try {
        String imageURL = "http://192.168.1.36/mimicit/fotos/foto1.jpg";
        Log.d("errors", "Got the link");
        RemoteImageView remoteImageView = (RemoteImageView) getView().findViewById(R.id.imageView1);
        Log.d("errors", "Done this part");
        remoteImageView.setImageURL(imageURL);
        Log.d("errors", "Done this other part");
    } catch (Exception e){
        Log.d("errors", "Wohoops. Crashed");
    }

    return myFragmentView;
}

如您所见,中间有一些日志,因此我可以确切地知道它崩溃的位置。

这是日志结果:

01-04 14:15:46.363: D/errors(1030): Got the link
01-04 14:15:46.363: D/errors(1030): Wohoops. Crashed

我认为问题可能是该 URL 在模拟器上不起作用,但浏览它并正常显示:

在此处输入图像描述

你认为问题出在哪里?

也许我应该下载img async?这有什么大不了的吗?我的意思是,如果不是它会崩溃吗?会尝试,但我不确定如何在异步模式下进行......

谢谢你。

塞尔吉

4

1 回答 1

2

替换这行代码:

RemoteImageView remoteImageView = (RemoteImageView) getView().findViewById(R.id.imageView1);

和:

RemoteImageView remoteImageView = (RemoteImageView) myFragmentView .findViewById(R.id.imageView1);

它抛出错误的原因是您没有从 onCreateView() 返回 View 并调用 getView() ,您将得到 Null。因此,您只需找到与您的 myFragmentView 相关的 ViewById。

于 2013-01-04T14:27:45.317 回答