Java 无法使用getRef()?

Java 无法使用getRef()?,java,android,firebase,firebase-realtime-database,firebaseui,Java,Android,Firebase,Firebase Realtime Database,Firebaseui,有人能解释为什么我不能使用getRef来获取被点击的位置吗?从我所看到的一切来看,这应该是有效的,但由于某些原因,它不是 public class DeleteChoiceListFragment extends Fragment { DatabaseReference mRootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference mRestReference = mRootRef.child("rest

有人能解释为什么我不能使用getRef来获取被点击的位置吗?从我所看到的一切来看,这应该是有效的,但由于某些原因,它不是

public class DeleteChoiceListFragment extends Fragment {

DatabaseReference mRootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference mRestReference = mRootRef.child("restaurants");

List<String> listofrest = new ArrayList<String>();
ListView restaurantListView;
ListAdapter restaurantListAdapter;


public DeleteChoiceListFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.restaurant_selection_list_frag, container, false);
    restaurantListView = (ListView) view.findViewById(R.id.restaurantListView);

    restaurantListAdapter = new FirebaseListAdapter<Restaurants>(getActivity(), Restaurants.class, R.layout.individual_restaurant_name_nocheckbox, mRestReference) {
        @Override
        protected void populateView(View v, Restaurants model, final int position) {
            TextView restName = (TextView) v.findViewById(R.id.restname);
            restName.setText(model.getName());

            listofrest.add(position, model.getName());
        }
    };

    restaurantListView.setAdapter(restaurantListAdapter);
    restaurantListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            Firebase itemtoremove = restaurantListAdapter.getRef(i);
            //I get an error here saying I can't use .getRef()
            itemtoremove.removeValue();


        }
    });
    return view;

  }
 }
公共类DeleteChoiceListFragment扩展了片段{
DatabaseReference mRootRef=FirebaseDatabase.getInstance().getReference();
DatabaseReference mRestReference=mRootRef.child(“餐厅”);
List-listofrest=new-ArrayList();
ListView餐厅ListView;
ListAdapter restaurantListAdapter;
公共DeleteChoiceListFragment(){
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.restaurant\u selection\u list\u frag,container,false);
restaurantListView=(ListView)view.findViewById(R.id.restaurantListView);
restaurantListAdapter=新的FirebaseListAdapter(getActivity(),Restaurants.class,R.layout.individual\u restaurant\u name\u nocheckbox,mreReference){
@凌驾
受保护的void populateView(视图v、餐厅模型、最终int位置){
TextView restName=(TextView)v.findviewbyd(R.id.restName);
restName.setText(model.getName());
添加(position,model.getName());
}
};
setAdapter(restaurantListAdapter);
restaurantListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
Firebase itemtoremove=restaurantListAdapter.getRef(i);
//我在这里得到一个错误,说我不能使用.getRef()
itemtoremove.removeValue();
}
});
返回视图;
}
}
您已将restaurantListAdapter声明为
列表适配器
。即使将
FirebaseListAdapter
对象放入该字段,也只能访问
ListAdapter
上定义的方法

解决方案是将该字段声明为
FirebaseListAdapter

FirebaseListAdapter restaurantListAdapter;

无论是
ListAdapter
还是它的父类
Adapter
,都没有方法
getRef()
getRef()
似乎是
FirebaseListAdapter
的一种方法,我试图在FirebaseListAdapter上使用它-restaurantListAdapter是FirebaseListAdapter不是…您的声明是
ListAdapter restaurantListAdapter…这绝对不是
FirebaseListAdapter