1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Problem beim erstellen von eigenen View..!

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von BFK, 25.10.2011.

  1. BFK, 25.10.2011 #1
    BFK

    BFK Threadstarter Erfahrener Benutzer

    Beiträge:
    160
    Erhaltene Danke:
    10
    Registriert seit:
    08.12.2010
    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..?
     
  2. the_alien, 25.10.2011 #2
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    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...
     
    BFK bedankt sich.
  3. BFK, 25.10.2011 #3
    BFK

    BFK Threadstarter Erfahrener Benutzer

    Beiträge:
    160
    Erhaltene Danke:
    10
    Registriert seit:
    08.12.2010
    Ohhhh verdammt...!
    So ein billiger Fehler und ich habe mir den Code schon mehrmals angesehen, leider immer wieer übersehen...!

    DANKE dir herzlich..!

    -MFG BFK-
     
  4. AndroidOL, 26.10.2011 #4
    AndroidOL

    AndroidOL Junior Mitglied

    Beiträge:
    29
    Erhaltene Danke:
    0
    Registriert seit:
    20.10.2011
    Die meisten Fehler findet man selbst nach mehrmaligem drüber schauen nicht ohne "fremde Augen".

    Aber dafür hat man ja Foren. :)
     
  5. BFK, 26.10.2011 #5
    BFK

    BFK Threadstarter Erfahrener Benutzer

    Beiträge:
    160
    Erhaltene Danke:
    10
    Registriert seit:
    08.12.2010
    Da hast du wohl recht..!
     

Diese Seite empfehlen