我正在制作一个绘图应用程序并想分享图像。但是,我遇到了startActivity
错误写入的部分错误The method startActivity(Intent) is undefined for the type
。这意味着什么以及如何解决?非常感谢提前!!!
编辑:
发布了代码的进一步代码设置:ActivityA
调用shareImage()
.PaintView
我不确定这种方式的上下文是否可以?除了这个新增的分享功能,没有分享的代码运行起来非常流畅。
油漆视图
// the main screen that is painted
public class PaintView extends View
{
Context context_new;
private boolean isFileAlreadySaved = false;
String savedFilePath = "";
private static final float TOUCH_TOLERANCE = 10;
// other declarations here
// PaintView constructor initializes the PaintView
public PaintView(Context context, AttributeSet attrs)
{
super(context, attrs); // pass context to View's constructor
this.context_new=context;
paintScreen = new Paint(); // used to display bitmap onto screen
// set the initial display settings for the painted line
paintLine = new Paint();
paintLine.setAntiAlias(true); // smooth edges of drawn line
paintLine.setColor(Color.BLACK); // default color is black
paintLine.setStyle(Paint.Style.STROKE); // solid line
paintLine.setStrokeWidth(5); // set the default line width
paintLine.setStrokeCap(Paint.Cap.ROUND); // rounded line ends
pathMap = new HashMap<Integer, Path>();
previousPointMap = new HashMap<Integer, Point>();
} // end DoodleView constructor
public void shareImage()
{
Intent share;
File attachment = null;
if(isFileAlreadySaved == true)
{
attachment = new File(savedFilePath);
boolean isFileThere = attachment.exists();
if (isFileThere == true)
{
share = new Intent(Intent.ACTION_SEND);
share.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(attachment));
share.setType("image/png");
startActivity(Intent.createChooser(share, "Share drawing"));
}
}
else
{
Toast.makeText(getContext(), "Please save the image first...", Toast.LENGTH_LONG).show();
};
};
活动A:
public OnClickListener shareButtonListener = new OnClickListener()
{
@Override
public void onClick(View v)
{
vibrate();
PaintView.shareImage(ActivtyA.this);
};
};
日志猫:
02-02 16:01:58.230: E/AndroidRuntime(9809): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
02-02 16:01:58.230: E/AndroidRuntime(9809): at android.app.ActivityThread.access$600(ActivityThread.java:127)
02-02 16:01:58.230: E/AndroidRuntime(9809): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
02-02 16:01:58.230: E/AndroidRuntime(9809): at android.os.Handler.dispatchMessage(Handler.java:99)
02-02 16:01:58.230: E/AndroidRuntime(9809): at android.os.Looper.loop(Looper.java:137)
02-02 16:01:58.230: E/AndroidRuntime(9809): at android.app.ActivityThread.main(ActivityThread.java:4511)
02-02 16:01:58.230: E/AndroidRuntime(9809): at java.lang.reflect.Method.invokeNative(Native Method)
02-02 16:01:58.230: E/AndroidRuntime(9809): at java.lang.reflect.Method.invoke(Method.java:511)
02-02 16:01:58.230: E/AndroidRuntime(9809): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
02-02 16:01:58.230: E/AndroidRuntime(9809): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
02-02 16:01:58.230: E/AndroidRuntime(9809): at dalvik.system.NativeStart.main(Native Method)
02-02 16:01:58.230: E/AndroidRuntime(9809): Caused by: java.lang.NullPointerException
02-02 16:01:58.230: E/AndroidRuntime(9809): at com.pearmak.drawing.ActivityA.onCreate(ActivityA.java:102)
02-02 16:01:58.230: E/AndroidRuntime(9809): at android.app.Activity.performCreate(Activity.java:4470)
02-02 16:01:58.230: E/AndroidRuntime(9809): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
02-02 16:01:58.230: E/AndroidRuntime(9809): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
02-02 16:01:58.230: E/AndroidRuntime(9809): ... 11 more