我有一个小问题,我用下面的代码在SD card中保存图片:
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");
然后显示俩个错误,第一个是在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)
请求大牛帮忙改正,好困惑。谢谢!
在manifest文件中写入:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
就不用那么麻烦了。
public void SDSave(String file){
File f=new File(file);
...
}
要调用你的方法返回一个字符串
public String SDSave()
在代码的结尾返回:
return "someString";
如果你不想返回一个字符串,使用这个方法:
public void SDSave()
对于程序中的第二个错误,你应该给方法中传递一个字符串,但是在你的方法中没有设置任何变量。应该加上:
public void SDSave(String myInputStringVariable)