Listview не заполняется ArrayList - PullRequest
       23

Listview не заполняется ArrayList

0 голосов
/ 16 апреля 2019

Я чувствую, что это будет простой ошибкой, но я пытаюсь заполнить список View для HOURS сейчас.Я получаю значения из Firebase (это работает нормально, так как я вижу данные в журнале), а затем добавляю значение в список массивов.Любая помощь будет потрясающей!спасибо всем

Я пробовал несколько разных способов (используя строку [] вместо представления списка и т. д., но ничего из этого не получилось.

public class ListTaskActivity extends AppCompatActivity {


ListView list;

FirebaseAuth mAuth;
String mCurrentUser;
MyListView adapter;

ArrayList<String> mylist = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_task);

    mAuth = FirebaseAuth.getInstance();
    mCurrentUser = mAuth.getCurrentUser().getUid();

    retrieveAllTask();

    adapter = new MyListView(this, mylist);

    list= findViewById(R.id.mListView);
    list.setAdapter(adapter);

}

public void retrieveAllTask(){

    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference ref = rootRef.child("Daily Task").child(mCurrentUser);

    ValueEventListener eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            for(DataSnapshot ds : dataSnapshot.getChildren()) {

                String theTaskName = ds.child("Daily Name").getValue(String.class);

                Log.d("Task Name", theTaskName);
                mylist.add(theTaskName);
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };
    ref.addListenerForSingleValueEvent(eventListener);
}

}






public class MyListView extends ArrayAdapter {

private final Activity context;
private ArrayList maintitle = new ArrayList<>();


public MyListView(Activity context, ArrayList<String>maintitle) {
    super(context, R.layout.list_row_layout, maintitle);
    // TODO Auto-generated constructor stub

    this.context=context;
    this.maintitle=maintitle;

}

public View getView(int position,View view,ViewGroup parent) {
    LayoutInflater inflater=context.getLayoutInflater();
    View rowView=inflater.inflate(R.layout.list_row_layout, null,true);

    TextView titleText = rowView.findViewById(R.id.title);

    titleText.setText((Integer) maintitle.get(position));

    return rowView;

};
}

мой макет res

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="5dip" >

<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:textSize="25sp"
    android:text="list item 1"
    android:textStyle="bold"
    android:typeface="sans"
    android:textColor="@android:color/black"/>

<ImageView
    android:id="@+id/deleteTaskImage"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:src="@drawable/ic_delete_forever_black_24dp"
    android:tint="@android:color/holo_red_dark"

    />

<ImageView
    android:id="@+id/completeTaskImage"
    android:layout_width="50dp"
    android:layout_height="50dp"

    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/ic_check_circle_black_24dp"
    android:tint="@android:color/holo_green_light"/>

</RelativeLayout>
...