我的应用中有一个没有初始值的TextView。此TextView使用Firebase dataSnapshot
值进行更新。现在,问题是这个TextView即使用datasnapshot值更新它也会返回null值。
我的逻辑是,我需要将我在TextView中更新的先前值与新的dataSnapshot
值进行比较。如果两个值都不同,我需要发送通知。
那么如何从使用Firebase dataSnapshot
更新的TextView中获取TextView值?
或者最简单的方法是什么?
编辑:
这是我的代码
//This view is initialised in onCreate. Adding just for reference
TextView tv= view.findViewbyId(R.id.mytextview);
mFirebaseDatabaseInstance.getReference("mgs").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Log.d(TAG, "App title updated");
TextView tv= getActivity().findViewbyId(R.id.mytextview);
String newValue = dataSnapshot.getValue(String.class);
tv.setText(bhaw);
if (!newValue.equals(tv)) {
sendNotification("msg");
}
答案 0 :(得分:0)
您可以尝试此操作来初始化文本视图。
<强> Fragment.java 强>
public class DemoFragment extends Fragment {
TextView tv;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_demo, container, false);
return view;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
tv = view.findViewById(R.id.mytextview);
}
}
这是文本视图初始化的完成方式。您需要通过片段视图初始化textview。像这样 tv = view.findViewById(R.id.mytextview); 来自onViewCreated()方法中View类的对象。
您正在尝试按上下文初始化文本视图,这就是您遇到此问题的原因。
希望它对你有所帮助。