简体   繁体   English

我有这个错误:“无法将 java.lang.String 类型的对象转换为 com.flashpub.flash.imageSection 类型”,我不知道为什么

[英]I have this error : "Can't convert object of type java.lang.String to type com.flashpub.flash.imageSection" and i don't know why

I've created a listView, and since i'm opening one of the item, the application need to fetch all image of the application, but it's doesn't work, i can't figure it out why that's showing me this error.我创建了一个 listView,由于我正在打开其中一个项目,应用程序需要获取应用程序的所有图像,但它不起作用,我无法弄清楚为什么会显示此错误。 Thank you for helping !感谢您的帮助 !

That's my model on Firebase :这是我在 Firebase 上的模型: Firebase 模型

imageSection.java图像部分.java

package com.flashpub.flash;

import java.util.List;

public class imageSection {

    String imageUrl;

    public imageSection(){

    }

    public imageSection(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    public String getImageUrl() {
        return imageUrl;
    }
}

chooseSection.java选择Section.java

package com.flashpub.flash;

import java.util.List;

public class chooseSection {

    String sectionn;

    public chooseSection() {

    }

    public chooseSection(String sectionn) {
        this.sectionn = sectionn;
    }

    public String getSectionn() {
        return sectionn;
    }
}

chooseSectionActivity.java选择SectionActivity.java

public class ChooseSectionActivity extends AppCompatActivity {

ListView listView;
FirebaseListAdapter<chooseSection> adapter;
chooseSection sectionChosse;

//private HashMap<Integer, String> allItemsList = new HashMap<Integer, String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_choose_section);

    listView = findViewById(R.id.listView);

    FirebaseDatabase.getInstance().setPersistenceEnabled(true);

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference();
    myRef.keepSynced(true);

    Query query = FirebaseDatabase.getInstance().getReference().child("Sections");
    Log.i("salut", query.toString());
    FirebaseListOptions<chooseSection> options = new FirebaseListOptions.Builder<chooseSection>()
            .setLayout(R.layout.section_list)
            .setQuery(query,chooseSection.class)
            .build();
    adapter =  new FirebaseListAdapter<chooseSection>(options) {
        @Override
        protected void populateView(@NonNull View view, @NonNull chooseSection model, int position) {

            TextView sectionView = (TextView) view.findViewById(R.id.sectionView);
            sectionView.setText(model.getSectionn());


            chooseSection lu = sectionChosse;
            //String LatLng = lu.getLocationUserLatitude() + "," + lu.getLocationUserLongitude();
            //allItemsList.put(position, model.getSectionn());
        }

    };
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            //String item = allItemsList.get(position);
            Intent intent = new Intent(ChooseSectionActivity.this, PubsSectionActivity.class);
            //intent.putExtra("key", item);
            startActivity(intent);
        }
    });
    listView.setAdapter(adapter);
}

@Override
protected void onStart() {
    super.onStart();
    adapter.startListening();
}

@Override
protected void onStop() {
    super.onStop();
    adapter.stopListening();
}

} }

PubsSectionActivity.java PubsSectionActivity.java

public class PubsSectionActivity extends AppCompatActivity {
ViewFlipper viewFlipp;
private DatabaseReference databaseReference;
private List<imageSection> slideLists;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pubs_section);

    viewFlipp = findViewById(R.id.viewFlipper);

    databaseReference = FirebaseDatabase.getInstance().getReference();
    slideLists = new ArrayList<>();
}

@Override
protected void onStart() {
    super.onStart();
    usingFirebaseDatabase();
}

private void usingFirebaseDatabase() {
    String lolipop = "Coiffeur";
    databaseReference.child("Sections/Restaurant")
            .addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if (dataSnapshot.exists()) {
                        slideLists.clear();
                        for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                            imageSection model = snapshot.getValue(imageSection.class);
                            slideLists.add(model);
                        }

                        Toast.makeText(PubsSectionActivity.this, "All data fetched", Toast.LENGTH_SHORT).show();
                        usingFirebaseImages(slideLists);
                    } else {
                        Toast.makeText(PubsSectionActivity.this, "No images in firebase", Toast.LENGTH_SHORT).show();
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                    Toast.makeText(PubsSectionActivity.this, "NO images found \n" + databaseError.getMessage(), Toast.LENGTH_SHORT).show();
                }
            });
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

}
private void usingFirebaseImages(List<imageSection> slideLists) {
    for (int i = 0; i < slideLists.size(); i++) {
        String downloadImageUrl = slideLists.get(i).getImageUrl();
        Toast.makeText(this, downloadImageUrl, Toast.LENGTH_LONG).show();
        ImageView imageView = new ImageView(this);
        Picasso.get().load(downloadImageUrl).fit().centerCrop().into(imageView);
        viewFlipp.addView(imageView);
        viewFlipp.setInAnimation(this, android.R.anim.slide_in_left);
        viewFlipp.setOutAnimation(this, android.R.anim.slide_out_right);
    }
}

} }

Help me please, i'm stuck !!请帮助我,我被卡住了!!

i don't know why there is this error...不知道为什么会出现这个错误...

You're attaching a listener to Sections/Restaurant .您正在将侦听器附加到Sections/Restaurant Since that is one specific restaurant, you don't need to loop over the children in onDataChange .由于那是一家特定的餐厅,因此您无需遍历onDataChange的子onDataChange

So:所以:

databaseReference.child("Sections/Restaurant")
    .addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists()) {
                slideLists.clear();
                imageSection model = snapshot.getValue(imageSection.class);
                slideLists.add(model);
                Toast.makeText(PubsSectionActivity.this, "All data fetched", Toast.LENGTH_SHORT).show();
                usingFirebaseImages(slideLists);
            } else {
                Toast.makeText(PubsSectionActivity.this, "No images in firebase", Toast.LENGTH_SHORT).show();
            }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Can't convert object of type java.lang.String to type com.psb.farmersmarket.Model.User How I solve this error? - Can't convert object of type java.lang.String to type com.psb.farmersmarket.Model.User How I solve this error? DataBaseException:无法将 java.lang.String 类型的 object 转换为 com.example.testingeverything.ShippingDetail 类型,我尝试了一切来修复它 - DataBaseException: Can't convert object of type java.lang.String to type com.example.testingeverything.ShippingDetail, I tried everything to fix it Firebase:无法将 java.lang.String 类型的对象转换为 com.example.positivethinkers.Members 类型 - Firebase : Can't convert object of type java.lang.String to type com.example.positivethinkers.Members 无法将 java.lang.String 类型的 object 转换为 com.example.ezcompras.Z20F3CZ3E630DAF3F494DDBFA 类型 - Can't convert object of type java.lang.String to type com.example.ezcompras.model.Lojas 出现错误com.google.firebase.database.DatabaseException:无法将类型为java.lang.String的对象转换为类型 - Appears error com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type 无法将 java.lang.String 类型的对象转换为 com.mycare.OtherClass 类型 - Can't convert object of type java.lang.String to type com.mycare.OtherClass com.google.firebase.database.DatabaseException:无法将类型为java.lang.String的对象转换为类型 - com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type 无法将 java.lang.String 类型的对象转换为 com.rafaquarta.whatsapp.model.Usuario 类型 - Can't convert object of type java.lang.String to type com.rafaquarta.whatsapp.model.Usuario DatabaseException:无法将java.Lang.String对象转换为类型 - DatabaseException: can't convert object of java.Lang.String to type com.google.firebase.database.DatabaseException:无法将类型为java.lang.String的对象转换为ERROR - com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type ERROR
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM