java - 如何将数据从返回 Activity 传递到上一个 Activity 中的对话框?

标签 java android onactivityresult material-dialog

访客详情

我在访客 Activity 中有一个对话框。当我单击该图标时,它将重定向到“相机 Activity ”。然后,当单击“Camera Activity”中的“Confirm”按钮时,它会将 Intent 发送回之前的 Activity,即“Visitor Activity”。问题是我应该如何将相机 Activity 的 Intent 结果传递回访问者 Activity 中的对话框。 Intent 数据应放置在“传递无编辑文本”中。我使用的 Material 对话框没有附加到该对话框的任何 fragment 。这一切都放在访客 Activity 中。有人可以帮帮我吗?谢谢!

private void checkin()
{
    final MaterialDialog dialog = new MaterialDialog.Builder(VisitorDetailActivity.this)
            .customView(R.layout.sample,false)
            .build();

    View view = dialog.getCustomView();
    final EditText etPassNo = (EditText) view.findViewById(R.id.etPassNo);
    final EditText etVehicleNo = (EditText) view.findViewById(R.id.etVehicleNo);
    final ImageView ivScanCode = (ImageView) view.findViewById(R.id.ivScanCode);
    final TextView tvCancel = (TextView) view.findViewById(R.id.tvCancel);
    final TextView tvSubmit = (TextView) view.findViewById(R.id.tvSubmit);

    etVehicleNo.setText(model.getFldVehicleNo());

    if(barCode != null)
    {
        etPassNo.setText(barCode);
    }

    ivScanCode.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            //Toast.makeText(VisitorDetailActivity.this, "Bar code scanner", Toast.LENGTH_SHORT).show();
            Intent i = new Intent(VisitorDetailActivity.this, ScanCodeActivity.class);
            startActivityForResult(i,97);
        }
    });

    tvCancel.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            dialog.dismiss();
        }
    });

    tvSubmit.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            if(etPassNo.getText().toString().trim().isEmpty())
            {
                Toast.makeText(VisitorDetailActivity.this, "Pass No is required", Toast.LENGTH_SHORT).show();
                return;
            }
            if(selImage == null)
            {
                proceedCheckin(etPassNo.getText().toString(), etVehicleNo.getText().toString());
            }
            else
            {
                proceedCheckinImage(etPassNo.getText().toString(), etVehicleNo.getText().toString());
            }
        }
    });

    dialog.show();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == 98 && resultCode == RESULT_OK)
    {
        selImage = data.getStringExtra("photo");

        Glide.with(VisitorDetailActivity.this).load(selImage).into(iDrivingLicense);

    }
    else if (requestCode == 99 && resultCode == RESULT_OK)
    {
        selImage = data.getStringExtra("photo");

        Glide.with(VisitorDetailActivity.this).load(selImage).into(iDrivingLicense);
    }
    else if(requestCode == 97 && resultCode == RESULT_OK)
    {
        barCode = data.getStringExtra("barCode");
    }
}

enter image description here

最佳答案

首先,您需要从该 checkIn 方法中全局获取 View 对象

View view;
view = dialog.getCustomView();
final EditText etPassNo = (EditText) view.findViewById(R.id.etPassNo);

现在在您的 onActivityResult 方法下,我可以看到您已经在那里获取了条形码,因此只需再次启动 EditText 对象即可,只需在其中设置数据即可。

barCode = data.getStringExtra("barCode");
EditText etPassNo = (EditText) view.findViewById(R.id.etPassNo); 
etPassNo.setText(barCode);

让我知道这是否有效。

关于java - 如何将数据从返回 Activity 传递到上一个 Activity 中的对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59302040/

相关文章:

AppCompatActivity 中未解析的 Android Activity Results API 引用

Java 正则表达式性能 : Reluctant Quantifier or Character Class?

Java 通用问题 : "incompatible types; inferred type argument(s) java. lang.Object 不符合类型变量 T 的边界

java - setTextSize 不适用于 Android 中的 AutofitTextView

java - onActivityResult 之后值被设置为 null

android - onActivityResult 未在 Activity 中调用

Java无法弄清楚要调用的方法

java - 从另一个函数中显示 Java GUI 标签

android - java.lang.ClassCastException : java. io.File 无法转换为 android.os.Parcelable

java - Android studio v2.2.2 error(27,17) 无法解析junit :junit4. 12