android - 有人可以指出我在下面的程序中缺少什么吗

标签 android

我正在尝试将上下文从一个类传递到另一个类..请告诉我我做错了什么..

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);
    }
}

检查.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就够了照原样。

关于android - 有人可以指出我在下面的程序中缺少什么吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062199/

相关文章:

Android:如何让启动器始终打开主 Activity 而不是子 Activity ? (或其他)

android - Here-api离线 map 安装

android - 增加双簧管音量后如何避免噼啪声?

java - API 级别低于 26 的通知代码

java - 未找到 ID 为 0x7f070000 的 fragment 的 View

java - Android Studio : While Loop Freezing Application

java - 使用 Java 的 POST 请求(AsyncTask)

安卓NDK : File Upload using NDK

java - 获取子字符串图像名称

android - 键入 Android Junit4 不存在异常