簡體   English   中英

沒有找到適合 into(Uri) 的方法

[英]No suitable method found for into(Uri)

我想允許用戶上傳兩張圖片,封面和徽標。然后將它們保存在 firestore 中。我在Picasso.get().load(uri).into(Logo); 線說

沒有為 into(Uri) 方法找到合適的方法 RequestCreator.into(Target) 不適用(參數不匹配;Uri 無法轉換為 Target) 方法 RequestCreator.into(ImageView) 不適用(參數不匹配;Uri 無法轉換為 ImageView )

package com.example.littlemarketplaceapp;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import com.squareup.picasso.Picasso;

public class Shop extends AppCompatActivity {

    private ImageButton Logoimage;
    private ImageButton Cover;
    private EditText ShopnameEditText;
    private TextView ShowShopName;
    private Button SaveButton;
    DatabaseReference databaseReference1;
    private FirebaseAuth mAuth;

    StorageReference storageReference = FirebaseStorage.getInstance().getReference();
    StorageReference storageReference1 = FirebaseStorage.getInstance().getReference();
    Uri Logo;
    Uri coverUri;
    private Uri uri;
    int coverOrLogo;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shop);
        Intent intent = getIntent();
        String emaila = intent.getExtras().getString("emaili");
        String passworda = intent.getExtras().getString("passwordi");
        String fullnamea = intent.getExtras().getString("fullnamei");
        String usernamea = intent.getExtras().getString("usernamei");
        String mobilea = intent.getExtras().getString("mobilei");
        String Shopname;
        Logoimage = findViewById(R.id.shoplogobutton);
        Cover = findViewById(R.id.coverphotobutton);
        ShowShopName = findViewById(R.id.shopname);
        ShopnameEditText = findViewById(R.id.shopnameedittext);

        Shopname = ShopnameEditText.getText().toString().trim();
        String key = databaseReference1.push().getKey();

        //Saves Owner's Data
        SaveButton.setOnClickListener(v -> {
            ForOwner s_owner = new ForOwner(fullnamea, usernamea, emaila, mobilea, passworda, Shopname);
            databaseReference1.child(key).setValue(s_owner);
            Toast.makeText(getApplicationContext(), "Registration complete", Toast.LENGTH_SHORT).show();


        });
        //Uploads the Logo
        Logoimage.setOnClickListener(view -> {
            //open Gallery
            Intent openGalleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(openGalleryIntent, 1000);
        });
        //Uploads the Cover photo
        Cover.setOnClickListener(view -> {
            //open Gallery
            Intent openGalleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(openGalleryIntent, 2000);
        });


    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @androidx.annotation.Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1000 && resultCode == Activity.RESULT_OK) {

            Uri imageUri1 = data.getData();
            Logoimage.setImageURI(imageUri1);
            uploadImageToFirebase(imageUri1, 1);
        } else if (requestCode == 2000 && resultCode == Activity.RESULT_OK) {
            Uri imageUri2 = data.getData();
            Cover.setImageURI(imageUri2);
            uploadImageToFirebase(imageUri2, 0);
        }
    }


    //}

    private <final_fileRef> void uploadImageToFirebase(Uri imageUri1, int coverOrLogo) {
        //upload image to firebase
        StorageReference fileRef = null;
        if (coverOrLogo == 1) {
            fileRef = storageReference.child("logo.jpg");
        } else if (coverOrLogo == 0) {
            fileRef = storageReference.child("cover.jpg");
        }

        fileRef.putFile(imageUri1).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {

            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                fileRef.putFile(imageUri1).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {

                    public void onSuccess(Uri uri) {
                        if (coverOrLogo == 1) {
                            Picasso.get().load(uri).into(Logo);
                        }
                        if (coverOrLogo == 0) {
                            Picasso.get().load(uri).into(Cover);
                        }
                    }

                });
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {

                Toast.makeText(Shop.this, "Failed", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

在你的代碼中LogoUri你需要這個:

Picasso.get().load(uri).into( imageView );

其中imageView在您的布局中是 ImageView object

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM