Как передать Parceable в умысле? - PullRequest
0 голосов
/ 04 мая 2019

У меня проблема с получением дополнений, которые приходят с моим намерением из другой деятельности. Когда я запускаю код и использую точки останова в строке, где объект фактически создается, я вижу, как он создается с использованием отладчика. Я вижу объект, помещаемый в функцию putExtra ().

По прибытии в результирующее действие, хотя использование функции getParceableExtra () всегда возвращает ноль при получении намерения.

// В приемной деятельности

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    if(requestCode == 1){
        if(resultCode == Activity.RESULT_OK){
            Intent extras = getIntent();
            if(extras != null){
                Goals addToList = extras.getParcelableExtra(GOAL_PASSING);
                if(addToList != null)
                    mGoal.add(addToList);
            }
        }
    }
}

// В отправляющей деятельности

    incrementMGoal = (findViewById(R.id.create_goal_button));
    incrementMGoal.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent returnIntent = new Intent();
            Goals newGoal = new Goals(GT,GD,GDueDate);
            returnIntent.putExtra(MainActivity.GOAL_PASSING,newGoal);
            setResult(Activity.RESULT_OK,returnIntent);
            finish();
        }
    });

Я ожидаю, когда я создам намерение передать putExtra, а затем получить его для помещения в массив. Я просто получаю ноль однако.

1 Ответ

0 голосов
/ 04 мая 2019

Проблема в том, что ваш код имеет неверное намерение, а не параметр onActivityResult data

Goals addToList = data.getParcelableExtra(GOAL_PASSING);

так что вместо этого вы должны сделать это

Goals addToList = data.getParcelableExtra(GOAL_PASSING);
...