2017-04-22 116 views
0

我的问题有点复杂。当它具有值事件侦听器时,是否可以更改对话框片段的内容?我在对话框片段的onCreateDialog()方法中设置了firebase的值事件侦听器,并且我想在每次更新Firebase时更改文本。根据firebase数据更改周期性更新dialogFragment的内容

是否有可能,如果是的话,它是如何实现的?

回答

0

创建

class ChangeListener(){ 
    TextView tv; 

    public setView(TextView view){ 
    this.tv = tv; 
    } 

    public void onDataChange (String newData){ 
    if(tv!=null){ 
    tv.setText(newData);  
} 

} }

In Dialog: 

@Override 
public void onCreateDialog (Bundle savedInstanceStat){ 
    cl = new ChangeListener(); 
    ref.addValueEventListener(new ValueEventListener() { 

     @Override 
     public void onDataChange(DataSnapshot snapshot) { 
      cl.onDataChanged(snapshot.getValue()); 
     } 
    } 

然后,添加以听者onCreatView

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.fragment_dialog, container, false); 
     View tv = v.findViewById(R.id.text); 

    cl.seView (tv); 
..... 
}