我无法将数据从第一个 activity (MapActivity) 发送到第二个 activity (NewContact)

I am not able to send data from first activity (MapActivity) to the second activity (NewContact)

问题是我无法将数据从 activity 2 发送到 activity 1。 这是 activity 1 (NewContact.java)

的快照

首先 activity (NewContact) 在底部我有一个 TextView,我在那个 TextView 上实现了一个 OnClickListener。当用户单击此 TextView 时,Second Activity (MapActivity) 将打开。

用户需要搜索地址,底部会出现一个圆形复选按钮,如果用户单击该按钮,则会出现一个警告对话框,询问是否添加位置。 如果用户单击 ADD,则相同的位置将保存到 FirstActivity 的 TextView,即 NewContact.

activity_new_contact.xml

这是 TextView 的 ID

android:id="@+id/etUserAddress"

NewContact.java

TvAddress = (TextView)findViewById(R.id.etUserAddress);

   Intent intent = getIntent();
   String addText = intent.getStringExtra(MapActivity.EXTRA_TEXT);
   TvAddress.setText(addText);

TvAddress.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v)
        {
            Intent intent = new Intent(NewContact.this, MapActivity.class);
            startActivityForResult(intent,1);
        }
    });

我还在第一个 activity (NewContact) 的 onActivityResult 中实现了 requestCode,它位于这个函数的底部:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if (requestCode == REQUEST_CODE_GALLERY && resultCode == RESULT_OK)
    {
        Uri imageUri = data.getData();
        CropImage.activity(imageUri)
                .setGuidelines(CropImageView.Guidelines.ON)
                .setAspectRatio(1, 1)
                .start(this);
    }

    if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE)
    {
        CropImage.ActivityResult result = CropImage.getActivityResult(data);
        if (resultCode == RESULT_OK)
        {
            Uri resultUri = result.getUri();
            mImageView.setImageURI(resultUri);
        } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE)
        {
            Exception error = result.getError();
        }
    }
    super.onActivityResult(requestCode, resultCode, data);

         //this requestCode is to send the data from one activity to other
    if (requestCode == 1)
    {
        if (resultCode == RESULT_OK)
        {
            String myStr = data.getStringExtra("EXTRA_TEXT");
            TvAddress.setText(myStr);
        }
    }

}

MapActivity.java

第二个 activity 我还创建了一个 public 静态字符串:

public static final String EXTRA_TEXT = 
"com.example.sahil.phonebook.EXTRA_TEXT";

下面是第二个 activity 的代码,当用户选择一个位置时,将显示一个警告对话框,要求用户添加或取消。 如果用户点击添加按钮然后函数 sendDataBack(); 将执行:

MapActivity.java

  sendAddress.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            AlertDialog.Builder a_builder = new AlertDialog.Builder(MapActivity.this);
            a_builder.setMessage("Add Location?").setCancelable(false).setPositiveButton("Add", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which)
                { //if user clicks on yes button then this will implement

                    sendDataBack();

                }
            })
                    .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });

            AlertDialog alertDialog = a_builder.create();
            alertDialog.setTitle("Confirm Location");
            alertDialog.show();

        }
    });

下面是函数的代码sendDataBack();

  public void sendDataBack()
 {
  String addText = mSearchText.getText().toString();

  Intent intent = new Intent(MapActivity.this, NewContact.class);
  intent.putExtra(EXTRA_TEXT, addText);

 setResult(1,intent);
  }

您需要在任何变量中传递您的值,如下所示。

public void sendDataBack()
{
  String addText = mSearchText.getText().toString();

  Intent intent = new Intent(MapActivity.this, NewContact.class);
  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
  intent.putExtra("textValue", addText);
  startActivity(intent);

 }

访问下一个 NewContact 的意图 activity。

String addText  = getIntent().getStringExtra("textValue");