Java 如何使选项菜单实现方法
我应该提出申请,然后我可以键入文本和编辑他们点击他们的选项菜单,他们就像“保存此文件”和“删除” 我制作了一个菜单和一个进行保存和删除的方法,但我不知道如何通过单击它们来让它们工作:( 这是我做的一些Java 如何使选项菜单实现方法,java,android,menu,onclick,Java,Android,Menu,Onclick,我应该提出申请,然后我可以键入文本和编辑他们点击他们的选项菜单,他们就像“保存此文件”和“删除” 我制作了一个菜单和一个进行保存和删除的方法,但我不知道如何通过单击它们来让它们工作:( 这是我做的一些 private static final String FILE_NAME = "first file.txt"; // создаем имя текстового файла private EditText editText; // создаем текстовове
private static final String FILE_NAME = "first file.txt"; // создаем имя текстового файла
private EditText editText; // создаем текстовове поле с именем editText
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if(id == R.id.action_save) {
return true;
}
if(id == R.id.action_open) {
return true;
}
if(id == R.id.action_delete) {
return true;
}
return true;
}
private void save(View v) { // класс для обработки сохранения файла при нажатии кнопки save
String text = editText.getText().toString(); // строка принимает текст с текстового поля и превращает в строку
FileOutputStream fos = null; // создаем выходящий поток данных fos и делаем пустым
try {
fos = openFileOutput(FILE_NAME, MODE_PRIVATE); // помещаем в поток имя файла и ограничиваем доступ к нему только этому приложению
fos.write(text.getBytes()); // в потоке эти значения переводятся в биты
editText.getText().clear(); // после сохранения файла мы очищаем текстовое поле
Toast.makeText(this, "saved to " + getFilesDir() + "/" + FILE_NAME, Toast.LENGTH_LONG).show(); //обьект toast выводит сообщение с адресом где сохранен файл
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fos != null) { //проверка если поток не пустой то этот метод его закрывает
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public void open(View v) { // медол для обработки кнопки open для открытия файла из памяти телефонв
FileInputStream out = null; // создаем выходящий поток out с пустым значение
try {
out = openFileInput(FILE_NAME); // присваиваем потоку открытые файла first file.txt
InputStreamReader isr = new InputStreamReader(out); //
BufferedReader br = new BufferedReader(isr); // знатемы мы переводим значения этого файла из байтов в буквенные
StringBuilder sb = new StringBuilder(); // затем мы полученные символы переводим в тип строки
String text;
while ((text = br.readLine()) != null) {
sb.append(text).append("\n"); // создание новой сроки если полученный текст не пустой
editText.setText(sb.toString()); // полученный данные из sb мы переводим в строку
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close(); //проверка если поток не пустой то этот метод его закрывает
} catch (IOException e) {
e.printStackTrace();
}
}
}
}