0

我有来自我以前项目的代码,可以访问 Firebase 并从这些值中填充列表视图。问题是我不再有这个项目,所以不能作为参考。

我遇到的问题是我没有收到从数据库返回的对象,所以我不能在 nothing' 上设置 onClickListener 。

这是来自新闻源类的代码:

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

    DatabaseReference databaseRef = FirebaseDatabase.getInstance().getReferenceFromUrl("https://apintofplain.firebaseio.com/apintofplain/Drinks");
    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference allBooksRef = rootRef.child("Drinks");
    ValueEventListener valueEventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            List<Drink> bookModelList = new ArrayList<>();
            for(DataSnapshot ds : dataSnapshot.getChildren()) {
                Drink book = ds.getValue(Drink.class);
                bookModelList.add(book);
            }
            ListView list = (ListView) findViewById(R.id.listView);
            CustomListView adapter = new CustomListView(Feed.this, bookModelList);
            list.setAdapter(adapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };
    allBooksRef.addListenerForSingleValueEvent(valueEventListener);



    list.setClickable(true);
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String make = pub[position];
            Toast.makeText(Feed.this, make, Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(Feed.this, MainActivity.class);
            startActivity(intent);
        }
    });
}

这是我的 CustomListView 类的代码:

 public CustomListView(Feed feed, List<Drink> drinkList) {
    super(feed, R.layout.listview_layout, drinkList);

}

我在做一些公然错误的事情吗?

在此处输入图像描述

String pub;
String location;
String price;
String rating;
String comment;
String signature;
String imageURL;

public Drink(){

}

public Drink(String pub, String location, String price, String rating, String comment, String signature, String imageURL){
    this.pub = pub;
    this.location = location;
    this.price = price;
    this.rating = rating;
    this.comment = comment;
    this.signature = signature;
    this.imageURL = imageURL;
}

public String getPub() {
    return pub;
}

public String getLocation() {
    return location;
}

public String getPrice() {
    return price;
}

public String getRating() {
    return rating;
}

public String getComment() {
    return comment;
}

public String getSignature() {
    return signature;
}

public String getImageURL(){
    return imageURL;
}

}

在此处输入图像描述

4

0 回答 0