2011-06-04 2 views
0

Désolé pour le titre concis. J'ai une application Android dans laquelle je dessine dans une classe qui est exécutée sur un CanvasThread, pour être tenu à l'écart du thread graphique principal. Mais maintenant, quand je veux dessiner des rectangles basés sur les données d'une requête à la classe DataHelper. Lorsque je veux instancier le DataHelper avec DataHelper dh = new DataHelper(this); je reçois la plainte que j'ai besoin d'un autre constructeur dans DataHelper, qui prend PanelChart comme argument au lieu de Contexte. Pourquoi est-ce?Comment appeler DataHelper à partir d'un thread ou d'une classe de peinture avec OnDraw?

Ceci est mon PanelChart classe:

public class PanelChart extends SurfaceView implements SurfaceHolder.Callback { 
private CanvasThread canvasthread ; 
private SurfaceView sf; 
private DataHelper dh ; 

public PanelChart(Context context, AttributeSet attrs) { 
    super(context, attrs); 


getHolder().addCallback(this); 
canvasthread = new CanvasThread(getHolder(), this); 
sf = (SurfaceView) findViewById(R.id.SurfaceView01); 
setFocusable(true); 



    //getData(dh); 

} 

Le getData (dh); est d'où je veux appeler la méthode qui appelle DataHelper et récupère les informations nécessaires pour dessiner.

Dois-je créer un autre constructeur dans DataHelper? Dois-je faire la requête dans une autre classe et l'envoyer à ma classe PanelChart?

Merci!

Répondre

1

Je pense que vous devez utiliser le paramètre de contexte du constructeur PanelChart, c'est le contexte de l'activité, dans lequel vous créez PanelChart:

public class PanelChart extends SurfaceView implements SurfaceHolder.Callback { 
private CanvasThread canvasthread ; 
private SurfaceView sf; 
private DataHelper dh ; 

public PanelChart(Context context, AttributeSet attrs) { 
    super(context, attrs); 

DataHelper dh = new DataHelper(context); 
getHolder().addCallback(this); 
canvasthread = new CanvasThread(getHolder(), this); 
sf = (SurfaceView) findViewById(R.id.SurfaceView01); 
setFocusable(true); 


} 
+0

Parfait. Une sorte de prévu quelque chose de plus compliqué :) Merci! – kakka47

Questions connexes