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
) и всё. Это дин из методов обработки нажатий советую к изучению.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как сделать так, чтобы пр свайпе снизу вверх менялась картинка (при каждом новом жесте)? Те есть картинки, которые меняются с помощью seelbar,...
Конкретно на примере: 1Впервые с момента запуска программы обратились к static-члену (тип int) класса
Подскажите пожалуйста, имеется сериализации класс, в нем необходимо переопределить метод например toString, после переопределения ранее сериализованные...
Реализован конвейер, состоящий из Manager, Reader, Executor1, Executor2, Writer, наследованные от Runnable (Executor1 дергает Reader, получает от него данные, обрабатывает,...