Android-намерение getStringExtra возвращает ноль

Я пытаюсь добавить данные в адаптер представления переработчика, но getStringExtra всегда имеет значение null. Я, возможно, делаю решающий недостаток в том, что я делаю, потому что я не самый опытный программист.

Что называется первым:

public void addItem(View view) {
        Intent otherOne = new Intent(this, Main2Activity.class);
        startActivity(otherOne);

        Intent intent = getIntent();
        String subjectString = intent.getStringExtra("subject");
        String detailsString = intent.getStringExtra("details");
        String dateString =   intent.getStringExtra("date");



        Data dataToAdd = new Data(
                subjectString,
                detailsString,
                dateString);
        mData.add(dataToAdd);
        Log.d(TAG, dateString + "might have workedlol");
        // Update adapter.
        mAdapter.addItem(mData.size()-1, dataToAdd);
    }

Что называется в MainActivity2:

public void setData(View view){


        inputSubject = (EditText) (findViewById(R.id.editTextSubject));
        String stringSubject = inputSubject.getText().toString();

        inputDetails = (EditText) findViewById(R.id.editTextDetails);
        String stringDetails = inputDetails.getText().toString();

        inputDate = (EditText) findViewById(R.id.editTextDate);
        String stringDate = inputDate.getText().toString();

        Intent intent = new Intent(this, PlannerActivity.class);
        intent.putExtra("subject", stringSubject.toString());
        Log.d(TAG, stringDate + "might have worked");
        intent.putExtra("details", stringDetails.toString());
        intent.putExtra("subject", stringDate.toString());
        startActivity(intent);
    }

1 ответ

У вас есть две ошибки:

  1. Вы неправильно пытаетесь обработать данные, возвращенные из действия. Есть несколько уроков о том, как это сделать. Вам нужно будет использовать startActivityForResult() и переопределить onActivityResult() Перезвоните. См. Получение результата от действия для деталей.

  2. Вы устанавливаете "subject" дважды, один раз с stringSubject а затем снова с stringDate,

Кроме того, слово "строка" в именах переменных является излишним и ненужным вводом. Я предлагаю вам использовать более простые имена, такие как date а также subject, Также нет причин звонить toString() на String объект, так как это уже правильный тип.

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