0
프래그먼트보기를 업데이트하여 데이터베이스에서 실시간으로 값이 들어 오면 내 재활용보기를 업데이트 할 수 있어야합니다. 현재 OnCreateView 메서드에서이 작업을 수행하지만 탭 전환시이 작업을 업데이트 할 수 없습니다.조각보기 업데이트
public class UserFragment extends Fragment {
public UserFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_blank, container, false);
RecyclerView rv = (RecyclerView) rootView.findViewById(R.id.rv_recycler_view);
rv.setHasFixedSize(false);
final ArrayList<widgetData> dummie_list = new ArrayList<>();
FirebaseAuth mAuth = FirebaseAuth.getInstance();
final MyAdapter adapter = new MyAdapter(dummie_list);
rv.setAdapter(adapter);
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("contacts").child(mAuth.getUid());
ref.addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds: dataSnapshot.getChildren())
{
if(!dummie_list.contains(new widgetData(ds.getValue(String.class), "FUCK FIREBASE", 0)))
{
dummie_list.add(new widgetData(ds.getValue(String.class), "FUCK FIREBASE", 0));
adapter.notifyDataSetChanged();
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
//handle databaseError
}
});
LinearLayoutManager llm = new LinearLayoutManager(getActivity());
rv.setLayoutManager(llm);
return rootView;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//Update view here
}
}
}
setUserVisibleHint은 내가 OnCreateView 가져 매개 변수에 액세스 할 수 없기 때문에보기를 업데이트 할 수있는 방법이없는 것 등의 문제를 일으키는 것입니다.