Through the startActivityForResult() method from Activit B to Activit A information comes.

All data is safely put into the intent - except for one of the one parameter. It is always zero.

Logged, in Activit B, when sent, it is filled with the correct value, when received (exactly the same as other values) it is always zero.

I’ll add all startActivityForResult() , if I need more information, I’ll add:

Activate receiving data:

  @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { SQLiteDatabase database = dbHelper.getReadableDatabase(); ContentValues contentValues = new ContentValues(); if (resultCode == RESULT_OK) { @Importance int importance = data.getExtras().getInt("Importance"); //эта строка, при этом если мне не изменяет память, я убирал аннотацию, не помогло. String header = data.getExtras().getString("header"); String body = data.getExtras().getString("body"); String date = data.getExtras().getString("date"); Log.v("date", "Время = " + date); contentValues.put(dbHelper.KEY_HEADER, header); contentValues.put(dbHelper.KEY_BODY, body); contentValues.put(dbHelper.IMPORTANCE, importance); Log.v("imp",""+importance); contentValues.put(dbHelper.DATE, date); long newItemIndex = database.insert(dbHelper.TABLE_NOTES, null, contentValues); fragment.addNewItem(header, body, importance, date, (int) newItemIndex); cursor.close(); } dbHelper.close(); } 

UPD:

Activate B, receipt and packaging:

  spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { intent = new Intent(); switch (spinner.getSelectedItemPosition()) { case 0: intent.putExtra("importance", Importance.noMatter); Log.v("итем", "item = 0 " + spinner.getSelectedItemPosition()); break; case 1: Log.v("итем", "item = 1 " + spinner.getSelectedItemPosition()); intent.putExtra("importance", Importance.green); break; case 2: intent.putExtra("importance", Importance.yellow); Log.v("итем", "item = 2 " + 2); break; case 3: intent.putExtra("importance", Importance.red); Log.v("итем", "item = 3 " + 3); break; default: intent.putExtra("importance", Importance.noMatter); Log.v("итем", "дефолт = " + spinner.getSelectedItem().toString()); break; } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); header.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (header.getText().length() == 32) { header.setError("Слишком длинный заголовок"); } } @Override public void afterTextChanged(Editable s) { } }); save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (header.getText().length() == 0) { header.setError("Необходимо заполнить"); return; } else { intent.putExtra("header", header.getText().toString()); Log.v("new", "header " + header.getText()); } if (body.getText().length() == 0) { body.setError("Необходимо заполнить"); return; } else { intent.putExtra("body", body.getText().toString()); } intent.putExtra("date", getDate()); Log.v("new", "body " + body.getText()); setResult(RESULT_OK, intent); finish(); } }); 
  • How do you pack the data? - post_zeew
  • @post_zeew updated the question. - Silento
  • And by pressing the save in the intent exactly is the value of Importance ? - post_zeew
  • @post_zeew V/new: importance в момент нажатия на сохранить = 3 log - Silento
  • Is this exactly in the onClick method of the onClick button? Look through the debugger contents of the generated intent. - post_zeew

1 answer 1

"Importance" <> "importance". You have a different register. Use constants:

 public static final String IMPORTANCE = "importance"; ... intent.putExtra(IMPORTANCE, Importance.noMatter); ... @Importance int importance = data.getExtras().getInt(ActivityB.IMPORTANCE); 

Constants can be moved to a separate class if they are used in other places.