getText 在文本视图上返回空值



我的应用程序中有一个没有初始值的文本视图。此文本视图已更新为 FirebasedataSnapshot值。现在,问题是这个文本视图即使已经用数据快照值更新了,也会返回空值。 我的逻辑是,我需要将以前在 TextView 中更新的值与新的dataSnapshot值进行比较。如果两个值不同,我需要发送通知。 那么如何从使用FirebasedataSnapshot更新的文本视图中获取文本视图值? 或者实现它的最简单方法是什么?

编辑:

这是我的代码

//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");
}

您可以尝试这样做来初始化文本视图。

片段.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);
}
}

这就是文本视图初始化的方式。您需要通过片段视图初始化文本视图。像这个电视 = view.findViewById(R.id.mytextview(; 来自 onViewCreated(( 方法中 View 类的对象。

您正在尝试按上下文初始化文本视图,这就是您遇到此问题的原因。

希望对您有所帮助。

最新更新