这个片段在我的MainActivity.java中,它调用我的类名为tools.java的“newdrawing()”方法。
public void onClick(View v) {
String color = null;
switch (v.getId()){
case R.id.newdraw_a:
tools buttons = new tools(this);
buttons.newdrawing();
break;
“newdrawing()”方法是一个对话框,要求用户添加另一个绘图或取消。当用户单击“Accept”时,我想从另一个名为“canvas_class.java”的类中调用一个方法。
public class tools extends View{
public canvas_class drawing;
public tools(Context context) {
super(context);
}
public void newdrawing(){
final AlertDialog.Builder newDialog = new AlertDialog.Builder(this.getContext());
newDialog.setTitle("New Drawing?");
newDialog.setMessage("You will overwrite all your current drawings. Are you sure you want to add another drawing?");
newDialog.setPositiveButton("Accept", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
dialog.dismiss();
drawing.newdrawing();
}
});
newDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
newDialog.show();
}
}
现在,我想问一下我在tools.java中的代码有什么问题,当我点击Accept时它会强制关闭。谢谢。
我的canvas_class看起来像这样
public class canvas_class extends View {
private Canvas drawCanvas;
public canvas_class(Context context, AttributeSet attrs) {
super(context, attrs);
setupDrawing();
}
public void newdrawing(){
drawCanvas.drawColor(0, PorterDuff.Mode.CLEAR);
invalidate();
}
答案 0 :(得分:0)
您最有可能获得NullPointerException
绘图为空,因此抛出异常,请初始化
canvas_class绘制变量,以便它不会抛出异常
答案 1 :(得分:0)
我不知道他们是否会这样做。是合法的,或许其他人可以帮助你,但你的工具的构造者' class可能是这样的:
public tools(Context context) {
super(context);
drawing = new canvas_class(context, this.attrs);
}
最好用大写命名类:
class Tools
class CanvasClass
我希望这会有所帮助。