Как правильно изменить фрагменты после startActivity (намерение)? - PullRequest
0 голосов
/ 25 июня 2019

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

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

Также в моем примере, если вы нажмете кнопку отправки, а затем нажмите на Gmail изатем нажмите «Отправить» в Gmail и закройте его, после чего вы вернетесь в приложение со всеми данными, все еще находящимися в форме.

Я хотел бы переключить fragments на благодарственное fragment.Я провел эксперимент и был счастлив, что если вы нажмете на другую иконку в bottom nav bar и вернетесь к отзыву fragment, что все данные будут удалены.

Спасибо, и вся помощь будет благодарна,Шон Маллиган

PS Нет кода, так как я не чувствую, что он нужен, мне просто нужно знать, в каком направлении идти, и какие-нибудь фрагменты кода, если таковые имеются, чтобы сделать следующий шаг.изменить fragments после intent.

Ответы [ 2 ]

0 голосов
/ 28 июня 2019
startActivityForResult(messageIntent,1000);
    }

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data){
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK){
            if (requestCode == 1000){
                Toast.makeText(getContext().getApplicationContext(),"You sent mail",Toast.LENGTH_SHORT).show();
            }
        }else{
            Toast.makeText(getContext().getApplicationContext(),"Mail Not Sent",Toast.LENGTH_SHORT).show();
            }
        }

Поэтому я посмотрел на startActivityForResult и onActivityResult и изменил свой код на вышеприведенный. Однако он ничего не делает, но почта не отправлена. Я узнал, что Gmail для одного не поддерживает это. Я полностью согласен с этим, но разве сам выборщик не должен что-то возвращать, чтобы приложение узнало, выбрано ли приложение или была использована кнопка отмены или возврата?

0 голосов
/ 25 июня 2019
 public void sendFeedbackMessage(String subject, String message) {

        Intent messageIntent = new Intent(android.content.Intent.ACTION_SENDTO);
        messageIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
        messageIntent.setType("plain/text");
        messageIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
        messageIntent.setData(Uri.parse("mailto:foo@gmail.com"));
        startActivity(messageIntent);
        }
...