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

Budget App (Haben-->grün, Soll-->rot)

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von xben89, 07.04.2011.

  1. xben89, 07.04.2011 #1
    xben89

    xben89 Threadstarter Neuer Benutzer

    Beiträge:
    12
    Erhaltene Danke:
    0
    Registriert seit:
    07.04.2011
    Hallo zusammen,

    wie der name schon sagt, arbeite ich gerade an einem budget app. Ich möchte dafür sorgen, dass negative beträge rot angezeigt werden und postivie grün. Ich hab bereits herumprobiert, aber bisher noch nicht auf eine lösung gestoßen..folgendes habe ich bereits:

    Folgendermaßen werden bereis alle kontodaten aus der datenbank ausgelesen und angezeigt:

    Code:
    public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    
    		Cursor c = Konto.getKontosMitKontostand();
    
    		startManagingCursor(c);
    
    		// Set Columns to bind
    		String[] columns = new String[] { Konto.DBKEY_KONTO_KN,
    				Konto.QUERY_KONTOSTAND };
    
    		// Views to bind to
    		int[] bindTo = new int[] { R.id.tv_konto, R.id.tv_kontostand };
    	
    		// Bind Data to ListView
    		SimpleCursorAdapter sAdapter = new SimpleCursorAdapter(this,
    				R.layout.listview_konto, c, columns, bindTo);
    
    		Cursor cursor = sAdapter.getCursor();
    		this.setListAdapter(sAdapter);
    
    		sAdapter.notifyDataSetChanged();
    		getListView().setOnCreateContextMenuListener(this);
    	}
    
    das habe ich bereits als code, der im moment zusammenhangslos steht zum oberen: mit der while schleife und der if bediengung bin ich in der lage aus dem obigen cursor die kontostände auszulesen und zwischen größer und kleiner null aufzuteilen..laut debug modus klappt das ganze auch. er kommt in die if schleife rein nun wird beim textview standText jedoch null zurückgeliefert so dass das ganze gar nicht erst startet.. also wo und wie genau muss ich das oben einbinden damit auf die textview zugriffen werden kann und diese verändert?
    Code:
    while(c.moveToNext()){
    	double wert = c.getDouble(2);
    	if (wert > 0){
    	TextView standText = (TextView) findViewById(R.id.tv_txt_stand);
    				this.setContentView(standText);
    				   standText.setTextColor((getResources().getColor(R.color.red)));
    			}
    	if (wert == 0){
    	TextView standText =  (TextView) findViewById(R.id.tv_txt_stand);
    				this.setContentView(standText);
    			standText.setTextColor((getResources().getColor(R.color.orange)));
    	this.setContentView(R.layout.listview_konto);
    			}
    		}
    
    
    danke schonmal für eure bemühungen

    lg benny
     
  2. swordi, 07.04.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    aufpassen und grundlagen lernen

    developer.android.com

    ich denke für den anfang bist du da gut aufgehoben.

    oder auch nochmal "java ist auch eine insel" lesen
     
  3. kleinerkathe, 07.04.2011 #3
    kleinerkathe

    kleinerkathe Android-Lexikon

    Beiträge:
    1,365
    Erhaltene Danke:
    219
    Registriert seit:
    23.01.2010
    Was genau ist den eine if-Schleife? :)
     
  4. xben89, 07.04.2011 #4
    xben89

    xben89 Threadstarter Neuer Benutzer

    Beiträge:
    12
    Erhaltene Danke:
    0
    Registriert seit:
    07.04.2011
    Mensch leute, man kann sich ja mal verschreiben wenn man im Streß ist..
    Der Code steht im Mittelpunkt!!

    Ein produktiverer Beitrag, der zur Lösung der dargestellten Problemstellung beigetragen hätte, wäre sicherlich hilfreicher als auf der if "schleife" herumzureiten...

    übringes läuft das ding jetzt, falls jemand interessiert ist, kann er sich ja mal folgendes anschauen:

    Code:
    
    package de.budgeapp.views;
    
    import de.budgeapp.R.color;
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.widget.TextView;
    
    public class SaldoView extends TextView{
    	
    	public SaldoView(Context ctx, AttributeSet attr)
    	{
    		super(ctx,attr);
    		//On Instantiate
    		try
    		{
    			if(Double.parseDouble((String)this.getText()) >= 0)
    			{
    				super.setTextColor(Color.GREEN);
    			}
    			else
    			{
    				super.setTextColor(Color.RED);
    			}
    			
    			super.setText(this.getText() +" EUR");
    			
    		}
    		catch(Exception ex)
    		{
    			
    		}
    	}
    	
    	@Override
    	public void onDraw(Canvas canvas)
    	{
    		super.onDraw(canvas);
    		//onDraw
    		try
    		{
    			if(Double.parseDouble((String)this.getText()) >= 0)
    			{
    				super.setTextColor(Color.GREEN);
    			}
    			else
    			{
    				super.setTextColor(Color.RED);
    			}
    			
    			super.setText(this.getText() +" EUR");
    			
    		}
    		catch(Exception ex)
    		{
    			
    		}
    	}
    	
    	@Override
    	public void onMeasure(int widthSpec, int heightSpec)
    	{
    		super.onMeasure(widthSpec, heightSpec);
    		//setMeasuredDimension(measuredWidth, measuredHeight);
    	}
    
    	
    	
    }
    
    
    lg benny
     
    Zuletzt bearbeitet: 07.04.2011

Diese Seite empfehlen