[英]android saving to SD card
大家好,我有一个小问题
我有这个代码将图像保存到 SD 卡
public String SDSave( ) { //View arg0
// TODO Auto-generated method stub
OutputStream outStream = null;
File file = new File( extStorageDirectory , AdName + ".PNG");
try {
outStream = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
Toast.makeText(WhereAmI.this, "Saved", Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(WhereAmI.this, e.toString(), Toast.LENGTH_LONG).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(WhereAmI.this, e.toString(), Toast.LENGTH_LONG).show();
}
}
我从这样的另一个方法调用它:
String sdSave = SDSave(extStorageDirectory + "/qr11.PNG");
我显示了 2 个错误,第一个是在public String SDSave( )
的方法中,它说:
This method must return a result of type String
第二个是在String sdSave = SDSave(extStorageDirectory + "/qr11.PNG");
它说:
The method SDSave() in the type WhereAmI is not applicable for the arguments (String)
请提供一些有关如何修复它的帮助.....
谢谢你
您将您的方法声明为public String
这意味着它必须从函数返回一个 String 对象(使用return
关键字),如果您不希望函数返回任何内容,请使用void
关键字而不是String
。
第二个错误意味着您在某处使用字符串作为参数( SDSave(extStorageDirectory + "/qr11.PNG");
)调用了SDSave
方法SDSave(extStorageDirectory + "/qr11.PNG");
而此函数不接受任何参数( public String SDSave( )
)。
你要求你的方法返回一个字符串
public String SDSave()
您将需要在代码末尾的行:
return "someString";
如果您不想返回字符串,请使用:
public void SDSave()
第二个错误,您尝试将 String 传递到您的方法中,但您的方法不接受任何变量。 你需要:
public void SDSave(String myInputStringVariable)
是的,这些是 Java 基础的,所以我会去阅读 Java 和 OO,也看看这个:
尝试在清单中写下这一行:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
希望它会帮助你。
public void SDSave(String file){
File f=new File(file);
...
}
嘿,您可以使用我在 Github 存储库链接上共享的示例代码此示例包含:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.