Данные карты намерений Android перезаписываются - PullRequest
0 голосов
/ 09 декабря 2018

Я добавляю 4 дополнения к намерению, и по какой-то причине 1 слот на карте намерения каждый раз перезаписывается.Это всегда один и тот же слот, если я не изменяю порядок добавления своих дополнений, тогда слот, который перезаписывается, изменяется.Вот картинки: Ладно, пока ...

Шаг вперед ... Шаг вперед и мой int пропал? Добавление последнего Extra работает нормально. Окончательное дополнение выглядит хорошо

Я проверил свои переменные и все данные правильно существуют в mTeamMemberFrag.Используя точки останова, я вижу, что первый и второй дополнительные добавляются без проблем, затем третий перезаписывает первый, а четвертый добавляет без проблем.Я вижу, что я не сопоставляю их с одним и тем же ключом.Я искал в Переполнении стека и прочитал документацию Android для Intent и Intent Filters.Я попытался изменить значения, которые добавляются к жестко заданным значениям, я попытался изменить порядок добавления дополнительных и дважды проверил статические окончательные переменные в MainActivity.

Что ж, при двойной проверке переменных в Main, когда я писал это, я обнаружил, что стало причиной моей ошибки: и USERNAMEKEY, и USERPOSITIONKEY были назначены "com.zin.username" в MainActivity, поэтому в зависимости от того, какая из нихСначала я добавил в намерение, один перезаписывал другой.

Я бы хотел знать, почему это происходит.Спасибо за ваше время!

Вот мой код, в который я загружаю Intent:

public void onBackPressed() {
    mTeamMemberFrag.updateUserID();
    Intent resultIntent = new Intent(this, MainActivity.class);
    resultIntent.putExtra(MainActivity.USERNAMEKEY, mTeamMemberFrag.getUserName());
    resultIntent.putExtra(MainActivity.USERIDKEY, mTeamMemberFrag.getUserID());
    resultIntent.putExtra(MainActivity.USERROLEKEY, mTeamMemberFrag.getSpinner().getSelectedItem().toString());
    resultIntent.putExtra(MainActivity.USERPOSITIONKEY, mMemberPosition);

    setResult(Activity.RESULT_OK, resultIntent);
    finish();
    Toast.makeText(this, "Team updated", Toast.LENGTH_SHORT).show();
    super.onBackPressed();
}

И в Main, где проблема была на самом деле:

public class MainActivity extends AppCompatActivity {
    public static final String USERIDKEY = "com.zin.userid";
    public static final String USERPOSITIONKEY = "com.zin.username";
    public static final String USERNAMEKEY = "com.zin.username";
    public static final String USERROLEKEY = "com.zin.userrole";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...