首页 > 解决方案 > 如何在 Uri.Builder 中获取 editText 信息

问题描述

我正在构建一个应用程序以将图像上传到我的公司服务器上传 URL 必须使用客户端 ID(4 位)创建电子邮件和密码,并在活动(LoginActivity)中输入编辑文本,并将数据传递给另一个活动(CameraActivity ) 我正在使用 URI.Builder 来创建所需的 URL,但我遇到了两件事,我不知道我的 edittext 数据(在 java LoginActivity 中)是否正在传递给另一个活动(CameraActivity),以及如何调用URI.Builder 中的编辑文本数据

appendPath我对如何通过在 URI.Builder中输入所需的信息来静态构建所需的 URL 有一个基本的了解,ApppendQueryParamater这样这将不是问题,我只需要知道如何将数据从 an 调用edittext到 appendQuEryParrameter 等。

我的 URI 生成器

 private void uploadImageToServer() {
    Uri.Builder builder = new Uri.Builder();
    builder.scheme("https")
            .authority("www.smartpractice.co.za")
            .appendPath("files-upload-ruben.asp")
            .appendQueryParameter("MyForm", "Yes");
           myURL =  builder.build().toString();

    File imageFile = persistImage(bitmap, "SP_Upload");
    Ion.with(this)
            .load(myURL)
            .setMultipartFile("SP-LOG", "image/jpeg", imageFile)
            .asJsonObject()
            .setCallback(new FutureCallback<JsonObject>() {
                @Override
                public void onCompleted(Exception e, JsonObject result) {

                }
            });

登录 Activity 将编辑文本数据传递给 CameraActivity Here

public class LoginActivity extends AppCompatActivity {

    private EditText email, password, id;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        email=findViewById(R.id.emailtext);
        password=findViewById(R.id.pwdtext);
        id=findViewById(R.id.clientid);
        Button loginBtn=findViewById(R.id.button);

        loginBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String emailAddress=email.getText().toString().trim();
                String userPassword=password.getText().toString().trim();
                String clientId=id.getText().toString().trim();
                Intent intent=new Intent(LoginActivity.this, CameraActivity.class);
                intent.putExtra("clientId", clientId);
                intent.putExtra("email", emailAddress);
                intent.putExtra("password", userPassword);
                startActivity(intent);
            }
        });
    }
}

标签: androidandroid-edittexturibuilder

解决方案


1.

Intent intent = getIntent();
uploadImageToServer(intent.getStringExtra("clientId"), intent.getStringExtra("email"),intent.getStringExtra("password"));

2.如果你需要像https://www.smartpractice.co.za/files-upload-ruben.asp?client_id=1234&email=example@gmail.com&pass=qwerty这样的 Uri ,那么你可以使用代码:

private void uploadImageToServer(String clientId, String email, String pass) {
    Uri.Builder builder = new Uri.Builder();
    builder.scheme("https")
            .authority("www.smartpractice.co.za")
            .appendPath("files-upload-ruben.asp")
            .appendQueryParameter("client_id", clientId);
            .appendQueryParameter("email", email);
            .appendQueryParameter("pass", pass);
    myURL =  builder.build().toString();

    ...
}

推荐阅读