package com.example.writeandread;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
//import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity {
private EditText edit;
private TextView txtShow;
// private Button btn1, btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// btn1 = (Button)findViewById(R.id.button);
// btn2 = (Button)findViewById(R.id.button2);
edit = (EditText)findViewById(R.id.editText);
txtShow = (TextView)findViewById(R.id.textView);
}
public void read (View view){
try {
FileInputStream fileInput = openFileInput("example.txt");
InputStreamReader reader = new InputStreamReader(fileInput);
BufferedReader buffer = new BufferedReader(reader);
StringBuffer strBuffer = new StringBuffer();
String lines;
while ((lines = buffer.readLine()) != null){
strBuffer.append(lines + "\n");
}
txtShow.setText(strBuffer.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void write (View view){
String myTxt = edit.getText().toString();
try {
FileOutputStream fileOutput = openFileOutput("example.txt", MODE_PRIVATE);
fileOutput.write(myTxt.getBytes());
fileOutput.close();
edit.setText("");
Toast.makeText(MainActivity.this, "Текст сохранен", Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Смотрю видеоурок на тему считывания и записи введеного текста в файл на устройство (https://www.youtube.com/watch?v=l3DR9PjyIYw&list=PL0lO_mIqDDFW13-lP3IgK9lZoM1M-oPl4&index=15&t=0s).
Так вот вопрос, почему добавленные мною кнопки в режиме "дизайн" в AndroidStudio РАБОТАЮТ без подключения соответствующей библиотеки - "Button"(я ее закомментировал) и к тому же без подключения функции прослушивания нажатий кнопок setOnClickListener?
Вы должны понимать что ничего не может работать без реализации, если кнопка визуально работает, это не означает что она выполняет ожидаемые функции: написали текст, нажали записать
, удалили текст, нажали прочитать
, работает? А так и должно быть, ибо у вас есть реализация кнопок: public void write (View view){}
и второй метод public void read (View view){}
, заккоментируйте их или переименуйте и вы получите ошибку компиляции так как у вас в коде вьюшки кнопки указан параметр android:onClick="read"
(это не правильное именование предпочтительнее писать: onClickRead), который описывает реализацию. В Java как мне помнится нужно было ещё писать @Override, но это не точно. Почему вам не нужно указывать ИД
кнопки? За вас это делает сама активити которая при прорисовке экрана находит вьюшку с данным атрибутом, сопоставляет его с таким же методом в коде (этот метод обязательно должен принимать View
) и всё. Это дин из методов обработки нажатий советую к изучению.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как сделать так, чтобы пр свайпе снизу вверх менялась картинка (при каждом новом жесте)? Те есть картинки, которые меняются с помощью seelbar,...
Конкретно на примере: 1Впервые с момента запуска программы обратились к static-члену (тип int) класса
Подскажите пожалуйста, имеется сериализации класс, в нем необходимо переопределить метод например toString, после переопределения ранее сериализованные...
Реализован конвейер, состоящий из Manager, Reader, Executor1, Executor2, Writer, наследованные от Runnable (Executor1 дергает Reader, получает от него данные, обрабатывает,...