2015-02-13 12 views
1

Im пытается загрузить изображения в фрагменте, используя volley libs. но я не могу исправить ошибку:Использование NetworkImageView в фрагментах - androidstudio

public static class ViewFragment extends Fragment { 
 

 
     ImageLoader mImageLoader; 
 
     NetworkImageView mNetworkImageView; 
 
     private static String IMAGE_URL = 
 
       "http://meteo.profi-net.sk/webcams/BIELAPUT-l.jpg"; 
 

 
     public ViewFragment() { 
 
      // Required empty public constructor 
 
     } 
 

 
     @Override 
 
     public void onCreate(Bundle savedInstanceState) { 
 
      super.onCreate(savedInstanceState); 
 

 
      // Get the NetworkImageView that will display the image. 
 
      mNetworkImageView = (NetworkImageView) getView().findViewById(R.id.networkImageView); 
 

 
      // Get the ImageLoader through your singleton class. 
 
      mImageLoader = VolleySingleton.getInstance(this).getImageLoader(); //!!!!!! HERE IS THE ERROR 
 

 
      // Set the URL of the image that should be loaded into this view, and 
 
      // specify the ImageLoader that will be used to make the request. 
 
      mNetworkImageView.setImageUrl(IMAGE_URL, mImageLoader); 
 

 
     } 
 

 
     @Override 
 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
 
           Bundle savedInstanceState) { 
 
      // Inflate the layout for this fragment 
 
      return inflater.inflate(R.layout.fragment_camera_view, container, false); 
 
     } 
 

 

 
    }

GetInstance (это) помечается как ошибка, но я не знаю, как изменить его. Его wokrs, если я пишу точно такой же код в какой-то деятельности.

Может кто-нибудь объяснить мне, как использовать NetworkImageView в фрагментах, пожалуйста?

+0

Нужно передать контекст в GetInstance? Не могли бы вы удалить «это»? – Bracadabra

ответ

0

getInstance нуждается в Контексте в качестве аргумента, Фрагмент - это не активность. Фрагмент может получить доступ к своей активности, вызвав метод getActivity. Вы должны проверить каждый раз перед этим вызовом, что фрагмент по-прежнему привязан к своей деятельности, или вы получите сбои

Так что вы можете сделать это:

if(isAdded()) 
{ 
      .......... your code .............. 
      // Get the ImageLoader through your singleton class. 
      mImageLoader = VolleySingleton.getInstance(getActivity()).getImageLoader(); 
       .......... your code .............. 
} 
Смежные вопросы