2013-05-02 2 views
0

Я пытаюсь получить информацию о твитах из поискового запроса в приложение для Android. Я могу указать имя пользователя и тему в списке, но у меня проблемы с захватом фотографии. Вот мой метод GetView от моего адаптераHttpConnection failing on .connect() для URL изображения

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
     View v = convertView; 
     if (v == null) { 
      LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = vi.inflate(R.layout.listitem, null); 
     } 

     UserRecord user = users.get(position); 
     if (user != null) { 
      TextView username = (TextView) v.findViewById(R.id.username); 
      TextView subject = (TextView) v.findViewById(R.id.subject); 
      // Bitmap bitmap = DownloadImage(user.imageURL); 
      ImageView img = (ImageView) v.findViewById(R.id.avatar); 
      if (username != null) { 
       username.setText(user.username); 
      } 

      if(subject != null) { 
       subject.setText(user.subject); 
      } 

      if (img != null){ 
       try { 
        URL myURL = new URL(user.imageURL); 
        HttpURLConnection conn = (HttpURLConnection) myURL.openConnection(); 
        conn.setDoInput(true); 
        conn.connect(); 
        InputStream is = conn.getInputStream(); 
        img.setImageBitmap(BitmapFactory.decodeStream(is)); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
     return v; 
    } 

Я проследил через мой код и он терпит неудачу на conn.connect() и переходит к утверждению улова. Кто-нибудь знает, почему это происходит? У меня есть подключение к Интернету в моем mainfest. Благодаря!

ответ

4

Да, он будет прыгать поймать заявление, и это даст вам follwing исключений, 1. NetworkOnMainThreadException

2. NullPointerException

Первый один, потому что вы пытаетесь выполнить работу сети на UI Thread.

Во-вторых, ваш входной поток равен нулю, когда вы пытаетесь получить к нему доступ, вы получите исключение NullPointerException.

Что вам нужно сделать?

Использование Отдельные thread или AsyncTask для загрузки изображений

это лучший способ?

Вы должны кэшировать изображения, когда показ изображений из URL в ListView, поэтому попробуйте использовать UniversalImageDownloader или LazyLoadList для заполнения изображения

0

что исключение, которое выдается и сообщение об ошибке?

С уважением, Hugo Pedrosa