【问题标题】:Cant use getRef()?不能使用 getRef()?
【发布时间】:2016-12-10 16:07:46
【问题描述】:

谁能解释为什么这说我不能使用 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;

  }
 }

【问题讨论】:

  • 没有getRef() 方法ListAdapter 也没有它的父类AdaptergetRef() 似乎是FirebaseListAdapter firebaseui.com/docs/android/com/firebase/ui/… 的一种方法
  • 我正在尝试在 FirebaseListAdapter 上使用它 - restaurantListAdapter 是 Firebase 列表适配器
  • 不,这不是...你的声明是ListAdapter restaurantListAdapter;...这绝对不是FirebaseListAdapter

标签: java android firebase firebase-realtime-database firebaseui


【解决方案1】:

您已声明 restaurantListAdapter 为ListAdapter。即使您将FirebaseListAdapter 对象放入该字段,您也只能访问在ListAdapter 上定义的方法。

解决方案是将字段也声明FirebaseListAdapter

FirebaseListAdapter restaurantListAdapter;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多