当前位置: 代码迷 >> Android >> 按钮不打开doInBackground(void ... params)
  详细解决方案

按钮不打开doInBackground(void ... params)

热度:62   发布时间:2023-08-04 11:17:43.0

我正在尝试将图像发送到服务器。 发生的是该按钮不起作用...单击该按钮时什么也没有发生。

无效onCreate

 imageToUpload = (ImageView) findViewById(R.id.imageToUpload);
 bUploadImage = (Button) findViewById(R.id.bUploadImage);
 uploadImageName = (EditText) findViewById(R.id.etUploadName);

 imageToUpload.setOnClickListener(this);

使onClick无效

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.imageToUpload:
            Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(galleryIntent, RESULT_LOAD_IMAGE);
            break;
        case R.id.bUploadImage: //HERE, THE BUTTON THAT I WANT TO WORK
            Bitmap image =  ((BitmapDrawable) imageToUpload.getDrawable()).getBitmap();
            new UploadImage(image, uploadImageName.getText().toString()).execute();
    }
}

   private class UploadImage extends AsyncTask<Void, Void, Void> {

        Bitmap image;
        String name;

        public UploadImage(Bitmap image, String name){
            this.image = image;
            this.name = name;
        }

    @Override
    protected Void doInBackground(Void... params) {
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        image.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
        String encodedImage = Base64.encodeToString(byteArrayOutputStream.toByteArray(), Base64.DEFAULT);

        Toast.makeText(getApplicationContext(), "UPLOADING...", Toast.LENGTH_SHORT).show();
    ...

按下按钮R.id.bUploadImage时没有调用doInBackground的问题是什么?

您必须使用侦听器初始化bUploadImage按钮

bUploadImage.setOnClickListener(this);

因为当前仅在执行case R.id.imageToUpload

  相关解决方案