繁体   English   中英

安卓保存到SD卡

[英]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( ) )。

我建议您尝试一两个Java 教程,因为这些规则是 Java(实际上是许多编程语言)的基础知识。

你要求你的方法返回一个字符串

 public String SDSave()

您将需要在代码末尾的行:

return "someString"; 

如果您不想返回字符串,请使用:

public void SDSave()

第二个错误,您尝试将 String 传递到您的方法中,但您的方法不接受任何变量。 你需要:

public void SDSave(String myInputStringVariable)

是的,这些是 Java 基础的,所以我会去阅读 Java 和 OO,也看看这个:

Java 程序员最常犯的十大错误

尝试在清单中写下这一行:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

希望它会帮助你。

public void SDSave(String file){
    File f=new File(file);
    ...
}

嘿,您可以使用我在 Github 存储库链接上共享的示例代码此示例包含:

  1. 从网络下载图像。
  2. 您也可以分享此图片。
  3. 您可以将此图像保存在 Sd 卡上。
  4. 图像缓存也有

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM