当前位置: 首页 > 知识库问答 >
问题:

找不到适用于into(Uri)的方法

华森
2023-03-14

我想允许用户上传两个图像,封面和徽标。然后将它们保存在fi恢复中。我在Picasso.get(). load(uri). enter(Logo);行中出错

找不到适用于into(Uri)方法RequestCreator的方法。into(目标)不适用(参数不匹配;Uri无法转换为目标)方法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();
            }
        });
    }
}

共有1个答案

巫马安怡
2023-03-14

在你的代码Logo是Uri你需要这个:

毕加索get()。加载(uri)。进入(图像视图);

其中imageView是布局中的imageView对象

 类似资料:
  • 我对java“I get this error”不熟悉,找不到适合getText(String)方法JTextComponent的方法。getText(int,int)不适用(实际参数列表和形式参数列表长度不同)方法JTextComponent。getText()不适用 (Alt Enter显示提示)“当我试图运行我的程序时。请帮助。我做错了什么?

  • 问题内容: 我正在尝试使用插入文档api的自动增量id功能向我的elasticsearch索引发出原始NodeJS http请求。 所以这适用于: 但是当我通过以下方式在nodejs中尝试相同的操作时: 它返回此错误: 但是,如果我在该路径的末尾添加一个,它将起作用。怎么了 问题答案: 这里的问题是方式和工作方式,当您使用时,它是可选的,ES 每次都会为您生成一个唯一的。 在这里,您使用的是这样的

  • 我想收集一些数据并将其存储到数据库(在Java中,使用MySQL)。其中一个数据是日期(创建/插入此条目时)。 我已经试过了 将日期转换为SQL友好的格式,但我仍然得到错误 找不到适合getDate(Date)的方法 方法结果集。getDate(int)不适用 (参数不匹配;日期无法转换为int) 方法ResultSet.get日期(字符串)不适用 (参数不匹配;日期无法转换为字符串) 错误发生在

  • 我在日蚀氧气里玩Lambda我有这样的代码 我无法提取Dummy::dothingsWithTwoArgs。Eclipse显示了一个编译错误语法错误,插入“AssignmentOperator Expression”以完成表达式,但提取在intellij中工作良好。在eclipse中有没有解决这个问题的方法?

  • 在启动activity中找不到合适的方法是显示错误的错误是: 错误:(123,17)错误:找不到适合startActivities(Intent)方法上下文的方法。startActivities(Intent[])不适用(参数不匹配;Intent无法转换为Intent[])方法上下文。startActivities(Intent[])不适用(参数不匹配;Intent无法转换为Intent[])方法

  • 问题内容: 我的Java程序(我的第一个程序)似乎位于标准代码的以下行: 我收到以下信息: 但是,在运行Java应用程序时,我提供了正确的位置(我认为); 任何想法如何进行? 太感谢了 问题答案: 任何想法如何进行?太感谢了 是。我看到两个主要问题。一,除非有充分的理由,否则不要使用来运行程序。如果这样做,可能会在以后引起您的重大痛苦。 其次,您的类路径看起来不正确。jar文件位于其上。第一部分应