hex*_*cle 18 android intellij-idea
我正在尝试编写一个自动将图片上传到服务器的Android应用程序,但我只关注一行代码:
File f = File(context.getCacheDir(), "filename");
Run Code Online (Sandbox Code Playgroud)
我得到的错误是

这让我感到困惑,因为我在网络上看到很多使用得很context.getCacheDir()好的例子,而我收到了错误信息.我的IDE设置可能有问题.我正在使用IntelliJ IDE.
这是上下文问题的上下文:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if( requestCode == CAMERA_PIC_REQUEST)
{
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ImageView image =(ImageView) findViewById(R.id.PhotoCaptured);
image.setImageBitmap(thumbnail);
//create a file to write bitmap data
File f = File(context.getCacheDir(), "filename");
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
Sim*_*mon 24
您需要做一些基本的Java编程教程.Java与JavaScript完全不同.
在这里,您使用context作为变量,但您既没有声明它,也没有初始化它,因此错误.
你可以定义它(并同时初始化)
Context context = this;
Run Code Online (Sandbox Code Playgroud)
因为this是指一类的当前对象实例和Activity是一个Context,或者更精确地说,它extends Context.
或者,你可以使用this.
File f = File(UploadToServer.this.getCacheDir(), "filename");
Run Code Online (Sandbox Code Playgroud)
错误是你没有声明的bacuse context,也没有作为参数传递
更改context.getCacheDir()到getApplicationContext.getCacheDir()或this.getCacheDir()
所以
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if( requestCode == CAMERA_PIC_REQUEST)
{
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ImageView image =(ImageView) findViewById(R.id.PhotoCaptured);
image.setImageBitmap(thumbnail);
//create a file to write bitmap data
File f = File(context.getCacheDir(), "filename");
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
会变成
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if( requestCode == CAMERA_PIC_REQUEST)
{
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ImageView image =(ImageView) findViewById(R.id.PhotoCaptured);
image.setImageBitmap(thumbnail);
//create a file to write bitmap data
File f = File(getApplicationContext.getCacheDir(), "filename");
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46174 次 |
| 最近记录: |