Wiem, że to pytanie zostało wielokrotnie zadawane i poprawnie podążałem za wszystkie kroki, ale nadal otrzymują dane zerowe w mojej pierwszej wiadomości

Pierwszeństwo rozpoczęcia zamiarem uzyskania wyniku z klasy biblioteki przy użyciu nałatoryczności, która jest inicjowana za pomocą zmiennej aktywności w konstruktorze:

 sendIntent.putExtra("data", bundle);
    sendIntent.setType("text/plain");
    sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    if (sendIntent.resolveActivity(context.getPackageManager()) != null) {
        activity.startActivityForResult(sendIntent, requestCode);
    }

Pointerapplication Uzyskanie intencji i wykonania niezbędnej operacji

        Intent intent = getIntent();

    Bundle bundle = intent.getBundleExtra("data");

    if (bundle!=null){


        type = bundle.getString("type");

        num1 = Integer.parseInt(bundle.getString("num1"));
        num2 = Integer.parseInt(bundle.getString("num2"));


        if (type.equalsIgnoreCase("add")){

            result = String.valueOf(num1+num2);


        }else {

            result = String.valueOf(num1-num2);

        }

    }

Wysyłanie wyniku do pierwszejaplikacji

    Bundle bundle1 = new Bundle();

    if (bundle1!=null){

        Intent send = new Intent();

        bundle1.putString("result", result);
        send.putExtra("datasend", bundle1);
        setResult(Activity.RESULT_OK, send);
        finish();

    }

Odbieranie wyniku NINAKTIOTYCZNOŚCI Pierwszej

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE) {
        if (resultCode == Activity.RESULT_OK) {
            Bundle bundle = data.getBundleExtra("datasend");
            result = bundle.getString("result");

        }
    } else {
        super.onActivityResult(requestCode, resultCode, data);
    }
}

Ale tutaj odbieram rezultat 0 i null danych. Wszelka pomoc zostanie doceniona. Dziękuję Ci.

0
akki_buoy 4 październik 2020, 07:59

1 odpowiedź

Najlepsza odpowiedź

Problem tkwi w tej linii

sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

Dzwoniąc Intent.FLAG_ACTIVITY_NEW_TASK Ustawiasz drugą aktywność na górze tylnego stosu i anulowanie efektu startActivityForResult()

Więc należy go usunąć, aby wrócić

0
Hamza Sharuf 4 październik 2020, 05:19