Android Studio的TextView中文件名显示不正确

问题描述 投票:1回答:1

[我正在开发一个应用程序(是的,我是应用程序开发的初学者,因此,如果您有什么建议可以代替我发布的代码,请这么说)。我正在尝试加载音频文件,以便稍后在使用该应用程序时进行处理。但是我目前坚持的是以下内容。当您单击“添加”时,它将带您到需要选择音频文件的文件浏览器。选择文件后,文件名需要显示在TextView中。我遇到的问题是文件名显示不正确。

测试文件名:测试音频文件.mp3

TextView中的结果:primary%3ADownload%2FTest%20audio%20file.mp3

所以将整个路径设置为带有%符号等的TextView,但我不知道为什么。如何使它仅正确显示文件名而没有完整路径?

用于打开文件资源管理器的代码:

Intent explorer = new Intent(Intent.ACTION_GET_CONTENT, MediaStore.Audio.Media.INTERNAL_CONTENT_URI);
        startActivityForResult(explorer, SELECT_AUDIO_FILE);

用于检索文件名并将其设置为TextView的代码:

audioUri = data.getData();
            File fileToProcess = new File("" + audioUri);
            String audioFileName = fileToProcess.getName();

            fileNameDisplay.setText(audioFileName);

java android textview filenames explorer
1个回答
0
投票

您可以尝试类似的方法。 %2F是反斜杠“ /”的URL编码,它是文件路径的一部分。通过分割后获取数组中的最后一个元素,您应该只获取'Test%20audio%20file.mp3'字符串。然后,您需要将编码的''字符替换为真实的''字符。

/* String to split. */
String stringToSplit = "primary%3ADownload%2FTest%20audio%20file.mp3";
String[] tempArray;

/* delimiter */
String delimiter = "%2F";

/* given string will be split by the argument delimiter provided. */
tempArray = stringToSplit.split(delimiter);

String result = tempArray[tempArray.length - 1];
result = result.replace("%20", " ");

fileNameDisplay.setText(result);
© www.soinside.com 2019 - 2024. All rights reserved.