2017-04-07 2 views
0

Ich kann nirgends eine Lösung finden, ich bin noch ziemlich neu in der Programmierung, also könnte es eine einfache Frage sein.Ändern der Bildquelle einer Bildansicht in einem anderen Layout

In meiner MainActivity nehme ich die Position einer ViewPager. Entsprechend dieser Position möchte ich die Quelle eines ImageView ändern, der in einem Layout platziert wird, das sich in einem Dienst aufblasen wird. Aber mit meinem Code bekomme ich immer NullPointerException. Muss ich die ImageView anders deklarieren, weil sie sich in einem anderen Layout befindet als das derzeit gezeigte?

public void OnClick(View view) { 


    pagenumber = viewPager.getCurrentItem(); 
    imageView = (ImageView) findViewById(R.id.filterview); 

    switch (pagenumber){ 
     case 0: imageView.setImageResource(R.drawable.goghfilter); 
      break; 
     case 1: imageView.setImageResource(R.drawable.background3); 
      break; 

Danke für jede Hilfe!

Antwort

0

Denken Sie daran, dass die mit dem Layout aufgeblasene Klasse nur Ansichten in diesem Layout finden wird, versuchen Sie, eine Ansicht zu finden, die nicht in diesem Layout Fehler verursacht. Um dies zu beheben, definieren Sie einen benutzerdefinierten Layout Inflater, füllen Sie das Layout mit dem Bild, dann verwendet diese Ansicht aufgebläht und führen Sie eine findById auf.

+0

Danke für die Antwort, Ich habe versucht, die folgenden:. 'LayoutInflater inflater = (LayoutInflater) getBaseContext() getSystemService (Context.LAYOUT_INFLATER_SERVICE); v = inflater.inflate (R.layout.overlay, null); imageView = (ImageView) v.findViewById (R.id.filterview); ' Welcher Fehler wurde behoben, aber es schien nicht die Quelle des Imageview zu ändern. Hast du das gemeint? –

+0

ja, sag mir, wie man diese Änderung der Quelle visuell bestätigen kann? Wie hängt das bestimmte Bild mit der Aktivität und dem Bindungslayout zusammen? – Remario

+0

Optisch ja, wenn es funktioniert, sollte ein anderes Bild als die Standardquelle über allem anderen erscheinen, wenn ich eine andere Option auswähle. Ich habe getestet, ob sich die ausgewählte Nummer geändert hat und das funktioniert gut. Das Problem besteht also darin, die Quelle zu ändern. Das Bild ist überhaupt nicht mit der Aktivität verknüpft. Es handelt sich um eine Bildansicht in einem Layout, die angezeigt wird, wenn ein Dienst gestartet wird. –

Verwandte Themen