Guten Abend
Hab da ein kleines Problem beim Ändern der ImageView-Resource. Ich habe nur eine Activity-Klasse und eine Custom View-Klasse. Im Custom View wird via OnTouchEvent die Berührung gehanhabt und dann in den Hilfsklassen der Custom View Klasse weiter verarbeitet. Diese Lauten FlaechenAuswahl und ImageChanger. Nun möchte ich im ImageChanger das Bild , je nach Berührungsort des CustomView, ändern. Jedoch bring ich das einfach nicht hin, momentan gibt es zwar keinen Fehler mehr aus, das Bild ändert sich trotzdem nicht...
Zur besseren Übersicht nehme ich alle bisherigen Versuche raus und lasse meine Hauptüberlegung einfach drin, damit es etwas übersichtlicher wird. Bei dieser Variante wird die 2. If-Bedigung in der Changer-Methode nicht eintreten, da das imgV = null ist.(Ohne die 2. Bedigung gäbe es eine FATAL EXCEPTION: main java.lang.NullPointerException).
Daraus lässt sich schliessen, dass nicht richtig auf das ImageView Objekt zugegriffen wurde. Könnte dies mit dem Context im Zusammenhang liegen?
Besten Dank
public class ImageChanger extends FlaechenAuswahl {
static String getImName;
static LayoutInflater controlInflater;
static int getID;
static int counter = 0;
View view;
static ImageView imgV;
static Context blub;
public ImageChanger(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void getImageId(String name) {
getID = getResources().getIdentifier(name, "drawable", "com.test1.jassteppich.jasstepich20");
}
public void getImageName(){
if (counter == 0) {
getImName = "leerelinien";
counter++;
}
else if (counter == 1) {
getImName = "linie1";
counter++;
}
else if (counter == 2) {
getImName = "linien2";
counter++;
}
else if (counter == 3) {
getImName = "linien3";
counter++;
}
else if (counter == 4) {
getImName = "linien4";
counter++;
}
else if (counter == 5) {
getImName = "linien5";
}
}
public void Change(){
getImageName();
getImageId(getImName);
Log.d("", "Context lautet "+getContext());
//Der Nachfolgende Code ist einfach meine Anfangs-und Hauptüberlegung
imgV = (ImageView) findViewById(R.id.imageView1);
if(getID != 0){
Log.d("", "Vor dem Wechsel angekommen ");
if(imgV != null) {
Log.d("","imgV ist nicht null");
Log.d("", "getID ist gleich "+getID);
Log.d("", "Bild mit namen "+getImName);
Log.d("","Context lautet"+layout.getContext());
imgV.setImageResource(getID);
}else {
}}
else{
Log.d("", "Change ");
}
}
}
Alles anzeigen
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/num1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/tafelrichtig2"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/layout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" >
<com.test1.jassteppich.jasstepich20.BeruehrungOben
android:id="@+id/oben"
android:layout_width="wrap_content"
android:layout_height="576dp" />
</LinearLayout>
<LinearLayout
android:layout_marginTop="10dp"
android:id="@+id/layout1" android:layout_width="96dp" android:layout_height="191.5dp" android:layout_marginLeft="70dp" android:layout_alignTop="@+id/layout2">
<ImageView
android:id="@+id/imageView1"
android:layout_width="96dp"
android:layout_height="191.5dp"
android:contentDescription="hunderter"
android:scaleType="fitXY"
/>
</LinearLayout>
</RelativeLayout>
Alles anzeigen