我正在尝试使用RecyclerView从Firebase数据库显示数据,但收到以下错误
类“源自FirebaseRecyclerAdapter的匿名类”必须 被声明为抽象或实现抽象方法 “ FirebaseRecyclerAdapter”中的“ onBindViewHolder(VH,int,T)”
我无法弄清楚我在做什么错,这是我正在使用的代码
package com.example.tickettap.Admin;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.example.tickettap.R;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class ShowData extends AppCompatActivity {
RecyclerView recyclerView;
FirebaseDatabase firebaseDatabase;
DatabaseReference myRef;
private FirebaseRecyclerAdapter<ShowDataItems, DisplayDataViewHolder> mFirebaseAdapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_delete_data);
firebaseDatabase = FirebaseDatabase.getInstance();
myRef = FirebaseDatabase.getInstance().getReference("User");
recyclerView = (RecyclerView) findViewById(R.id.displayData);
recyclerView.setLayoutManager(new LinearLayoutManager(ShowData.this));
Toast.makeText(ShowData.this, "Retrieving Data", Toast.LENGTH_SHORT).show();
}
@Override
public void onStart() {
super.onStart();
mFirebaseAdapter = new FirebaseRecyclerAdapter<ShowDataItems, DisplayDataViewHolder>
(ShowDataItems.class, R.layout.activity_show_single_item, DisplayDataViewHolder.class, myRef) {
public void populateViewHolder(final DisplayDataViewHolder viewHolder, ShowDataItems model, final int position) {
viewHolder.Email(model.getEmail());
viewHolder.Role(model.getRole());
//OnClick to delete selected data
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(ShowData.this);
builder.setMessage("Are you sure you wish to delete the selected data").setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int selectedItems = position;
mFirebaseAdapter.getRef(selectedItems).removeValue();
mFirebaseAdapter.notifyItemRemoved(selectedItems);
recyclerView.invalidate();
onStart();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.setTitle("Confirm");
dialog.show();
}
});
}
};
recyclerView.setAdapter(mFirebaseAdapter);
}
//View Holder For Recycler View
public static class DisplayDataViewHolder extends RecyclerView.ViewHolder {
private final TextView Email;
private final TextView Role;
public DisplayDataViewHolder(final View itemView) {
super(itemView);
Email = (TextView) itemView.findViewById(R.id.getEmail);
Role = (TextView) itemView.findViewById(R.id.getRole);
}
private void Email(String email) {
Email.setText(email);
}
private void Role(String role) {
Role.setText(role);
}
}
}
与该行有关的错误
mFirebaseAdapter = new FirebaseRecyclerAdapter<ShowDataItems, DisplayDataViewHolder>
非常感谢您的帮助