Problem beim erstellen von eigenen View..!

B

BFK

Fortgeschrittenes Mitglied
11
Hallo forum,
Ich wollte mir ein eigenen View zusamenstellen, aber leider stehe ich vor einem seltsamen Problem.
Erstmal mein Code von meiner abgeleitete-View Klasse..:
Code:
public class View_1 extends View {

    
    private static String name_1;
    private static String name_2;
    private static String name_3;
     
    /*+++++++++++ CONSTRUCTORS +++++++++++++ */
public_1(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public View_1(Context context) {
        super(context);
    }
    /* ---------------- */

public void setName_1(String NAME){
        name_1 = NAME;
    }
    
public void setName_2(String NAME){
        name_2 = trackNAME;
    }

public void setName_3(String NAME){
        name_2 = trackNAME;
    }

@Override
    protected void onDraw(Canvas canvas) {
        
        Paint paint_trackName = new Paint();
        paint_trackName.setColor(Color.BLACK);
        paint_trackName.setTextSize(22);
        paint_trackName.setStyle(Style.FILL);
        paint_trackName.setAntiAlias(true);
        canvas.drawText(name_1,20, 25, paint_trackName);
        
        .
        .
        .
        
        Paint line_paint = new Paint();
        line_paint.setColor(Color.BLACK);
        canvas.drawLine(0, getHeight() - 1, getWidth(), getHeight() - 1, line_paint);        
        
        setBackgroundColor(Color.argb(255, 255, 165, 0));
        super.onDraw(canvas);        
    }

}
Also, wir Ihr seht mein View beinhaltet einfach nur Text, der angezeigt wird.

In meiner Activity erstelle ich ein Objekt meines Views, also ein Objekt von View_1 und adde es in meinem LinearLayout namens "jo"...:
Code:
LinearLayout lL = (LinearLayout) findViewById(R.id.jo);
        LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, 60);
        
        View_1 firstView = new View_1(getApplicationContext());
        firstView.setName_1("Test_1");
        firstView.setName_2("Test_2");
        firstView.setName_3("Test_3");
        firstView.setLayoutParams(lp );
        lL.addView(firstView)
Soweit so gut...!

Wenn ich jetzt aber ein neues View_1-Objekt erstelle und da eine eigenschaft setze, sagen wir mal setName_1..:
Code:
View_1 secView = new View_1(getApplicationContext());
secView.setName_1("BLABLA");
...wird einfach der Name vom vorhandenen View_1 geändert auf "BLABLA", obwohl ich ja den Name_1 vom secView gesetzt hab, das ja nicht mal zum LinearLayout geaddet wurde.

Was mache ich falsch..?
 
Deine Strings name_1, name_2 und name_3 sind static, das heißt jede Instanz der Klasse greift auf genau diese 3 Variablen zu. Du möchtest das static rausnehmen...
 
  • Danke
Reaktionen: BFK
Ohhhh verdammt...!
So ein billiger Fehler und ich habe mir den Code schon mehrmals angesehen, leider immer wieer übersehen...!

DANKE dir herzlich..!

-MFG BFK-
 
Die meisten Fehler findet man selbst nach mehrmaligem drüber schauen nicht ohne "fremde Augen".

Aber dafür hat man ja Foren. :)
 
AndroidOL schrieb:
Die meisten Fehler findet man selbst nach mehrmaligem drüber schauen nicht ohne "fremde Augen".

Aber dafür hat man ja Foren. :)

Da hast du wohl recht..!
 

Ähnliche Themen

5
Antworten
0
Aufrufe
1.117
586920
5
R
Antworten
6
Aufrufe
982
swa00
swa00
W
Antworten
2
Aufrufe
718
rene3006
R
Zurück
Oben Unten