arraylist不显示数据库中的任何数据

时间:2019-08-06 18:24:39

标签: android firebase arraylist listadapter

我是Android和Firebase的新手。我想在arraylist中显示来自Firebase的数据。这是我遇到的logcat错误,

原因:java.lang.NullPointerException:尝试在com.example.w上的空对象引用上调用虚拟方法'java.lang.String com.example.najihah.budgetapps.Model.Users.getPhone()' .apps.ListItemActivity.onCreate(ListItemActivity.java:70)

TaskActivity.java

btnSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ValidateData();
                Intent intent = new Intent(TaskActivity.this, ListItemActivity.class);
                startActivity(intent);

            }
        });

    }

    private void ValidateData() {
        item = titleItem.getText().toString();
        desc = titledesc.getText().toString();
        strPriority = radioButton.getText().toString();

        if (TextUtils.isEmpty(item))
        {
            Toast.makeText(this, "Product insert item list", Toast.LENGTH_SHORT).show();

        }
        else if (TextUtils.isEmpty(desc))
        {
            Toast.makeText(this, "Please insert description", Toast.LENGTH_SHORT).show();

        }
        else if (TextUtils.isEmpty(strPriority))
        {
            Toast.makeText(this, "Please choose the item priority", Toast.LENGTH_SHORT).show();

        }
        else
        {
            StoreDatabase();
        }
    }

    private void StoreDatabase() {

        HashMap<String, Object> listMap = new HashMap<>();

        listMap.put("item", item);
        listMap.put("desc", desc);
        listMap.put("priority", strPriority);

        final Task<Void> voidTask = reference.child(RandomKey).updateChildren(listMap)
                .addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        if (task.isSuccessful()) {

                            Toast.makeText(TaskActivity.this, "Item is in the list", Toast.LENGTH_SHORT).show();
                        } else {

                            String message = task.getException().toString();
                            Toast.makeText(TaskActivity.this, "Error: " + message, Toast.LENGTH_SHORT).show();
                        }

                    }
                });

下面是与TaskActivity相关的活动。

ListItemActivity.java

reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
                {
                    MyList p = dataSnapshot1.getValue(MyList.class);
                    list.add(p);
                }
                listAdapter = new ListAdapter(ListItemActivity.this, list);
                ourlist.setAdapter(listAdapter);
                listAdapter.notifyDataSetChanged();
            }

注意:MyList.java是用于setter和getter的模型类

ListAdapter.java

Context context;
    ArrayList<MyList> myList;

    public ListAdapter(Context c, ArrayList<MyList> p){
        context = c;
        myList = p;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.itemlist, viewGroup, false));
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {

        myViewHolder.title.setText(myList.get(i).getTitle());
        myViewHolder.desc.setText(myList.get(i).getDesc());
        myViewHolder.priority.setText(myList.get(i).getPriority());
        //myViewHolder.key.setText(myList.get(i).getKey());

        final String getTitle = myList.get(i).getTitle();
        final String getDesc = myList.get(i).getDesc();
        final String getPriority = myList.get(i).getPriority();
       // final String getKey = myList.get(i).getKey();

        myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                /*Intent intent = new Intent(context, EditTask.class);*/
                Intent intent = new Intent(context, EditTask.class);
                intent.putExtra("title", getTitle);
                intent.putExtra("desc", getDesc);
                intent.putExtra("priority", getPriority);
                //intent.putExtra("key", getKey);
                context.startActivity(intent);
            }
        });

    }

    @Override
    public int getItemCount() {
        return myList.size();
    }

    class MyViewHolder extends RecyclerView.ViewHolder{

        TextView title, desc, priority, key;

        public MyViewHolder(View itemView) {
            super(itemView);
            title = (TextView) itemView.findViewById(R.id.titlelists);
            desc = (TextView) itemView.findViewById(R.id.desclists);
            priority = (TextView) itemView.findViewById(R.id.priority);

        }
    }

我希望项目,优先级和描述显示在ItemListActivity.java的数组列表中

0 个答案:

没有答案