Get无法在child()错误中为参数'pathString'传递null

时间:2018-11-21 19:55:47

标签: android firebase firebase-realtime-database

我在如何使用按钮访问Firebase数据中的另一个活动时遇到了一些麻烦。我刚收到一个错误“无法在child()中为参数'pathString'传递null”。但是,当我尝试在Listview项目上使用OnItemClick进行其他活动时,它将起作用。为什么会这样?

我想做的是:我有一个带有Listview的活动,该活动存储并从Firebase获取数据。我想要的是,如果我单击该列表视图中的一个项目,我想要一个带有按钮的新活动,这些按钮将带我进入另一个与第一个活动(相关数据)相关的列表视图的活动。因此,带有按钮的活动对于我单击的每个列表视图项目都是相同的活动,就像“虚拟”活动一样。这可能吗?

代码如下:

lvjobbinfo可以正常工作,但是add不能。我想要lvjobbinfo并添加以执行相同操作。

public class MainActivity extends AppCompatActivity {

EditText etinfonavn;
ListView lvjobbinfo;
TextView tvjobbnavn;
Button add;

DatabaseReference databaseJOBBINFO;

List<Main> jobbinfo;

public static final String infonavn = "infonavn";
public static final String infoid = "infoid";



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

    databaseJOBBINFO = FirebaseDatabase.getInstance().getReference().child("Jobbinfo");


    lvjobbinfo = (ListView)findViewById(R.id.lvjobbinfo);


    lvjobbinfo.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {

            Main main = jobbinfo.get(i);

            Intent intent = new Intent(getApplicationContext(), Notater.class);

            intent.putExtra(infoid, main.getInfoId());
            intent.putExtra(infonavn, main.getInfonavn());

            startActivity(intent);

            return true;


        }
    });

    tvjobbnavn = (TextView)findViewById(R.id.tvjobbnavn);
    etinfonavn = (EditText) findViewById(R.id.etinfonavn) ;
    add  = (Button)findViewById(R.id.add);

    add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent add = new Intent(MainActivity.this, Notater.class);
            startActivity(add);
        }
    });




    Intent intent = getIntent();

    jobbinfo = new ArrayList<>();


    String id = intent.getStringExtra(Jobbliste.jobbId);
    String navn = intent.getStringExtra(Jobbliste.jobbnavn);

    tvjobbnavn.setText(navn);

    databaseJOBBINFO = FirebaseDatabase.getInstance().getReference("Jobbinfo").child(id);




}
@Override
protected void onStart() {
    super.onStart();

    databaseJOBBINFO.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            jobbinfo.clear();

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

                final Main main = infosnapshot.getValue(Main.class);
                jobbinfo.add(main);


                final listMain infolistadapter = new listMain(MainActivity.this, jobbinfo);

                lvjobbinfo.setAdapter(infolistadapter);

                infolistadapter.notifyDataSetChanged();

            }




        }

        @Override
        public void onCancelled(DatabaseError databaseError) {




    }
});

0 个答案:

没有答案