Как отправить несколько строк данных обратно в MainActivity? - PullRequest
0 голосов
/ 30 декабря 2018

Я хочу отправить несколько полей ввода из одного занятия в основное занятие, используя намерения.Но мое приложение не запускается после этого момента.

Мой код ввода: -

Код в дочерней активности для отправки данных

ivHappy.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.putExtra("name",etName.getText());
            intent.putExtra("number",etNumber.getText());
            intent.putExtra("website",etWebsite.getText());
            intent.putExtra("loc",etLocation.getText());
            intent.putExtra("smileyCode",1);
            setResult(RESULT_OK,intent);
            Activity2.this.finish();
        }
    });

Код для получения данных

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==ACTIVITY2){
        if(resultCode==RESULT_OK){
            int x = Integer.parseInt(data.getStringExtra("smileyCode"));
            if(x==1){
                ivPic.setImageResource(R.drawable.happy);
            }
            if(x==2){
                ivPic.setImageResource(R.drawable.neutral);
            }
            if(x==3){
                ivPic.setImageResource(R.drawable.sad);
            }
            number = data.getStringExtra("number");
            name = data.getStringExtra("name");
            website = data.getStringExtra("website");
            location = data.getStringExtra("loc");

            ivPic.setVisibility(View.VISIBLE);
            ivDial.setVisibility(View.VISIBLE);
            ivWeb.setVisibility(View.VISIBLE);
            ivLoc.setVisibility(View.VISIBLE);
        }

НоЭто не работает.Так как же мне отправить несколько входных данных обратно в mainActivity?

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

Попробуйте ниже, так как всегда лучше отправлять и получать данные в String, чтобы произошла ошибка преобразования, но таким образом вы должны сделать свой метод onActivityResult достаточно интеллектуальным, чтобы знать, является ли этот дополнительный тип String или Int или Float и т. Д.нет пути, но я думаю, что скоро SafeArgs решит эту проблему (я хочу)

при настройке Extra оставьте все в Int.

        intent.putExtra("name",etName.getText());
        intent.putExtra("number",etNumber.getText());
        intent.putExtra("website",etWebsite.getText());
        intent.putExtra("loc",etLocation.getText());
        intent.putExtra("smileyCode",Integer.toString(1));

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

        intent.getExtra("name");
        intent.getExtra("number");
        intent.getExtra("website");
        intent.getExtra("loc");
        Integer.valueOf(intent.getExtra("smileyCode"));
0 голосов
/ 30 декабря 2018

Во время работы с детьми, когда вы получаете тексты, вы должны преобразовать их в строку.Вот так theName.getText (). ToString ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...