Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android系统上不重复ListView的元素_Java_Android_Firebase_Listview_Firebase Storage - Fatal编程技术网

Java 如何在Android系统上不重复ListView的元素

Java 如何在Android系统上不重复ListView的元素,java,android,firebase,listview,firebase-storage,Java,Android,Firebase,Listview,Firebase Storage,我有一个大问题,不管你有没有。当有超过15个数据时,我的移动应用程序的ListView会重复元素。我正在使用Firebase的云存储来存储数据 我的适配器的代码是: @NonNull @Override public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { View view = convertView; if(view == null){

我有一个大问题,不管你有没有。当有超过15个数据时,我的移动应用程序的ListView会重复元素。我正在使用Firebase的云存储来存储数据

我的适配器的代码是:

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {

    View view = convertView;

    if(view ==  null){
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);

        view = inflater.inflate(R.layout.lista_receitas, parent, false);

        if(receitasAdap.size() > 0){
            Receitas receita = receitasAdap.get(position);

            final ImageView imagemReceita = (ImageView) view.findViewById(R.id.imagemReceitaId);
            TextView tituloReceita = (TextView) view.findViewById(R.id.tituloReceitaId);

            FirebaseStorage firebaseStorage = FirebaseStorage.getInstance();
            StorageReference storageReference = firebaseStorage.getReferenceFromUrl("gs://receitas-pantaneiras.appspot.com/").child(receita.getUrl());


            storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                @Override
                public void onSuccess(Uri uri) {
                Picasso.with(getContext()).load(uri.toString()).resize(widht, height).centerCrop().into(imagemReceita);
                }
            });
            tituloReceita.setText(receita.getNome());
            tituloReceita.setVisibility(View.VISIBLE);
        }
    }

    return view;
}
请尝试以下代码:

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {

    View view = convertView;

    if(view ==  null){
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);

        view = inflater.inflate(R.layout.lista_receitas, parent, false);
    }
    Receitas receita = receitasAdap.get(position);

    final ImageView imagemReceita = (ImageView) view.findViewById(R.id.imagemReceitaId);
    TextView tituloReceita = (TextView) view.findViewById(R.id.tituloReceitaId);

    FirebaseStorage firebaseStorage = FirebaseStorage.getInstance();
    StorageReference storageReference = firebaseStorage.getReferenceFromUrl("gs://receitas-pantaneiras.appspot.com/").child(receita.getUrl());


    storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
        @Override
        public void onSuccess(Uri uri) {
            Picasso.with(getContext()).load(uri.toString()).resize(widht, height).centerCrop().into(imagemReceita);
        }
    });
    tituloReceita.setText(receita.getNome());
    tituloReceita.setVisibility(View.VISIBLE);

    return view;
}

希望有帮助

你能解释一下OBS是什么意思吗?在我的语言中,它是观察的缩写。我很抱歉:你能解决这个问题吗?你能附上一个问题的截图吗?因为我是一个新用户,我不能附上图像,但我为图像添加了一个链接。这个代码工作不正常,图像总是一个接一个地出现,还有其他想法吗?