2016-03-08 2 views
-3

Как я могу слушать имя кнопки, которая была нажата при сохранении файла на карту памяти у меня есть много различных кнопок и один методсохранить файл на карту памяти

File file = new File(SDCardRoot,"/Download/Alnabi.pdf"); 

Если человек нажимает номер кнопки один я хочу, чтобы alnabi.pdf был сохранен на SD-карте, но что, если я нажал вторую кнопку? Я хочу, чтобы изменить имя файла «alnabi.pdf» на другое, в зависимости от того, какая кнопка была нажата, спасибо.

+0

Это не является допустимым синтаксисом JavaScript. Вы говорите о Java вместо этого? –

ответ

0

Вам нужно будет предоставить различные функциональные возможности для обеих кнопок. Но чтобы сохранить код в обслуживании, я бы рекомендовал повторно использовать код, который является общим для всех/обеих кнопок (путем определения метода).

Код может выглядеть примерно так:

button1.addActionListener(e -> saveFile("Alnabi.pdf")); // Java8-Syntax 
button2.addActionListener(e -> saveFile("AnotherOne.pdf")); 

и метод, содержащий общий код:

public void saveFile(String variableFileName) { 
    File file = new File(SDCardRoot,"/Download/"+variableFileName); 
    ... 
} 
0

первым написать код, который проверяет, если внешнее запоминающее устройство доступно для операций чтения/записи Способ проверки наличия у пользователя прав на запись на внешнем хранении или нет

public static boolean canWriteOnExternalStorage() { 
// get the state of your external storage 
String state = Environment.getExternalStorageState(); 
if (Environment.MEDIA_MOUNTED.equals(state)) { 
// if storage is mounted return true 
    Log.v(“sTag”, “Yes, can write to external storage.”); 
    return true; 
} 
return false; 
} 

использовать этот код, чтобы сохранить файл

File sdcard = Environment.getExternalStorageDirectory(); 
File dir = new File(sdcard.getAbsolutePath() + “/your-dir-name/”); 
dir.mkdir(); 
File file = new File(dir, “My-File-Name.txt”); 
FileOutputStream os = outStream = new FileOutputStream(file); 
String data = “This is the content of my file”; 
os.write(data.getBytes()); 
os.close(); 

необходимо следующее разрешение

<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” /> 
Смежные вопросы