Я начинаю с android и пытаюсь использовать изображение из API google places в свой собственный listview. Я пытаюсь сделать это с помощью Picasso. Я могу получить текст без проблем, но когда я пытаюсь прикрепить изображение с url, он дает мне ошибку «Target not be null». Любые комментарии/помощь/предложения приветствуются.Picasso on custom listview
Мой заказ listrow places_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1">
<ImageView
android:id="@+id/placeicon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.10"/>
<TextView
android:id="@+id/placeinfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="20dp"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/placeicon"
android:layout_toEndOf="@+id/placeicon" />
</RelativeLayout>
Мои Асинхронный PostExecute код:
ImageView places_icon = (ImageView) findViewById(R.id.placeicon);
venuesfound = (ArrayList) parsedataFound(result);
ArrayList<String> venuesList = new ArrayList<>();
for(int i = 0; i<venuesfound.size();i++){
if(venuesfound.get(i).getImageURL() != null){
Picasso.with(getApplicationContext())
.load(venuesfound.get(i).getImageURL())
.into(places_icon);
}
venuesList.add(venuesfound.get(i).getName()
+ "\nOpen: " + venuesfound.get(i).getOpenNow()
+ "\n(" + venuesfound.get(i).getCategory() + ")");
}
placesList = (ListView) findViewById(R.id.places_list);
placesAdapter = new ArrayAdapter(DisplayPlacesActivity.this, R.layout.places_layout, R.id.placeinfo, venuesList);
placesList.setAdapter(placesAdapter);
Logcat:
java.lang.IllegalArgumentException: Target must not be null.
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:618)
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:601)
at com.example.johnchy.samplegui.DisplayPlacesActivity$dataRequest.onPostExecute(DisplayPlacesActivity.java:102)
at com.example.johnchy.samplegui.DisplayPlacesActivity$dataRequest.onPostExecute(DisplayPlacesActivity.java:56)
at android.os.AsyncTask.finish(AsyncTask.java:631)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
at dalvik.system.NativeStart.main(Native Method)
Опять же, любая помощь приветствуется!
где is 'com.example.johnchy.samplegui.DisplayPlacesActivity $ dataRequest.onPostExecute (DisplayPlacesActivity.java:102)'? – JohnnyAW
Спасибо, что ответили! Я считаю, что это строка picasso для кода Async onPostExecute: Picasso.with (getApplicationContext()) .load (venuesfound.get (i) .getImageURL()) .into (places_icon); Он находится на втором блоке кода – Masterofawesome
, а затем проверяет значения с вашим отладчиком, что-то «null» в этой строке. Я бы предположил, что «places_icon» имеет значение null, так как он является целевым – JohnnyAW