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 ответ
У вас есть две ошибки:
Вы неправильно пытаетесь обработать данные, возвращенные из действия. Есть несколько уроков о том, как это сделать. Вам нужно будет использовать
startActivityForResult()
и переопределитьonActivityResult()
Перезвоните. См. Получение результата от действия для деталей.Вы устанавливаете
"subject"
дважды, один раз сstringSubject
а затем снова сstringDate
,
Кроме того, слово "строка" в именах переменных является излишним и ненужным вводом. Я предлагаю вам использовать более простые имена, такие как date
а также subject
, Также нет причин звонить toString()
на String
объект, так как это уже правильный тип.