2012-01-30 30 views
1

我试图从一个类传递上下文到另一个..请告诉我笏我做错了..可有人请点我什么我是在程序中缺少以下

Draw.java

public class Draw extends View{ 

    private Context context; 
    private Paint paint = null; 
    private Point start,end; 
    public Draw(Context check){ 
     super(check); 
     paint(); 
    }  

    protected void onDraw(Canvas canvas){ 
     super.onDraw(canvas); 
     canvas.drawRect(60,60,120,120,paint); 
     Check check = new Check(context.getApplicationContext()); 
     check.update(); 
    } 
    public void paint(){ 
     paint= new Paint();  
     paint.setColor(Color.YELLOW); 
     paint.setAntiAlias(true); 
     paint.setStyle(Paint.Style.FILL_AND_STROKE); 
    } 
} 

Check.java

public class Check { 
    private static Check check = null; 
    private Context context; 
    public Check(Context context){ 
     this.context = context; 
    } 

    void update() { 
     Toast.makeText(context, "Context Received", Toast.LENGTH_LONG).show(); 
    } 
} 

RectangleActivity.java

public class RectangleActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     Context context; 
     super.onCreate(savedInstanceState); 
     Draw draw = new Draw(this); 
     setContentView(draw); 
    } 
} 

请帮助我..我坚持这个问题好几天......

在抽取构造
+0

什么问题你得到任何错误,然后请粘贴错误在这里从你的logcat – Pratik 2012-01-30 10:09:35

回答

3

,你从来没有上下文保存到您的变量,它应该是这样的检查构造函数:

this.context = context; 

,否则你将有一个null当你到

context.getApplicationContext() 

这也是不必要的,它足以通过context照原样。

+0

非常感谢你...它的工作... – aditi88 2012-01-30 10:21:17

+0

不客气。请将答案标记为解决方案,方法是单击左侧的小V形符号,以便人们知道问题已解决:) – Jave 2012-01-30 10:23:36

1

要么在构造函数中初始化上下文变量。或者使用this.getContext();而不是视图类中的上下文。

相关问题