问题描述
我正在尝试将图像发送到服务器。 发生的是该按钮不起作用...单击该按钮时什么也没有发生。
无效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
的问题是什么?
1楼
您必须使用侦听器初始化bUploadImage
按钮
bUploadImage.setOnClickListener(this);
因为当前仅在执行case R.id.imageToUpload