在ListFragment中更新ListView

问题描述

我正在尝试创建一个包含3个片段的布局。其中之一是AllPostFragment。最初,该片段设置为显示“没有新的食物!”。在onCreateView之后,我希望从数据库获取帖子并在listview中更新它们。这是AllPostFragment的代码

public class AllPostFragment extends ListFragment{
    String Username;
    ArrayList<String> posts = new ArrayList<>();
    public AllPostFragment(String Username)
    {
        this.Username=Username;
    }
    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.activity_all_post_fragment,container,false);
        return rootView;
    }

    @Override
    public void onResume() {
        super.onResume();
        FirebaseDatabase firebaseDatabase=FirebaseDatabase.getInstance();
        DatabaseReference postref=firebaseDatabase.getReference("posts");
        postref.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                for(DataSnapshot snap : snapshot.getChildren()){
                    String s="Type: "+snap.child("type").getValue()+"\n"+"Name: "+snap.child("name").getValue()+"\n"+"Phone: "+snap.child("phoneNo").getValue()+"\n"+"City: "+snap.child("city").getValue()+"\n"+"PostedBy: "+snap.child("Username").getValue();
                    posts.add(s);
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });
        ArrayAdapter<String> adapter=new ArrayAdapter<(getListView().getContext(),android.R.layout.simple_list_item_1,posts);
        setlistadapter(adapter);
        adapter.notifyDataSetChanged();
    }
}

我正在更新onResume上的帖子,但我想在加载第一个视图之前对其进行更新。但是,当我尝试在onCreateView方法中设置arrayadapter时,它说未创建视图。xml文件代码在下面附上als。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_height="match_parent"
    android:layout_width="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".AllPostFragment"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ListView
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:background="#AEC5EB"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:id="@android:id/list"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:id="@android:id/empty"
        android:text="No new food posts!"/>
</RelativeLayout>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...