Я пытаюсь передать контекст из одного класса в другой. PLS сказать мне, что я делаю неправильно.
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);
}
}
пожалуйста, помогите мне.. Я застрял в этой проблеме в течение нескольких дней...
в вашем Draw-constructor вы никогда не сохраняете контекст в своей переменной, это должно быть как в Check-constructor:
this.context = context;
в противном случае у вас будет null
когда вы
context.getApplicationContext()
Который также немного ненужен, достаточно передать context
как есть.
либо инициализировать переменную контекста в конструкторе. или используйте this.getContext(); вместо контекста в классе представления.