Как правильно преобразовать синтаксис из строки в массив

Я создаю проект в студии Android. Моя цель: когда я нажимаю кнопку «загрузить», я хочу, чтобы данные в строках edittextName + edittextPhone вызывали ранее сохраненные данные и отправляли их обратно после закрытия и повторного открытия приложения.

Когда я пытаюсь запустить свой проект, я получаю сообщение об ошибке «найден массив, требуется строка»

Я считаю, что все, что мне нужно сделать, это заменить [] на команду get(), но я не знаю, какой синтаксис использовать правильно.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_favourite);


    editTextName = (EditText) findViewById(R.id.nameText);
    editTextPhone = (EditText) findViewById(R.id.phoneText);

    file = new File(this.getFilesDir(), FILE_NAME);

}

public void save(View v) {
    String data = editTextName.getText().toString() + "|" + editTextPhone.getText().toString();
    try {
        outputStream = new FileOutputStream(file);
        outputStream.write(data.getBytes());
        outputStream.close();
        Toast.makeText(this, "Your Barcrawl has been saved!", Toast.LENGTH_LONG).show();
    } catch (Exception e) {
        e.printStackTrace();

    }


}

public void load(View v) {
    int length = (int) file.length();
    byte[] bytes = new byte[length];
    try {
        inputStream = new FileInputStream(file);
        inputStream.read(bytes);
        inputStream.close();
        String data = new String(bytes);
        editTextName.setText(data.split("\\|"[0])); // << problem
        editTextPhone.setText(data.split("\\|"[1])); // << problem
        Toast.makeText(getBaseContext(), "data loaded", Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        e.printStackTrace();
    }

Я новичок в студии Android и какое-то время застрял на этом, пожалуйста, помогите.

Вы намеревались сделать это: editTextName.setText(data.split("\\|")[0])? String#split возвращает массив строк. Затем вы можете получить доступ к элементу в этом массиве.

Tim Biegeleisen 01.07.2018 17:20
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
43
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

data.split("\\|") возвращает String[], вы можете изменить его на это:

editTextName.setText(data.split("\\|")[0]);  
editTextPhone.setText(data.split("\\|")[1]);

Спасибо, исправил, легенда!

Joey D 01.07.2018 17:47

Другие вопросы по теме