Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用方法,但代码不调用';我不能分头去_Java_Android - Fatal编程技术网

Java 调用方法,但代码不调用';我不能分头去

Java 调用方法,但代码不调用';我不能分头去,java,android,Java,Android,我有一些问题,我把Log.D放在某个地方,看哪一行是工作的,哪一行是不工作的。但是Log.d(“look”,“222222”)不起作用 我有一个fill()方法。我在onCreate()方法中调用这个方法 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_product_screen);

我有一些问题,我把Log.D放在某个地方,看哪一行是工作的,哪一行是不工作的。但是
Log.d(“look”,“222222”)不起作用

我有一个
fill()
方法。我在
onCreate()
方法中调用这个方法

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_product_screen);        
    Log.d("look","00000000000000000");
    fill(typeC);
   Log.d("look","444444444444444444");                
}
让我们看看
fill()
方法的实现

private void search(final String [] list) {
    Log.d("look","1111111111111111111");
    for(int i =0;i<list.length;i++){
        DatabaseReference fd = mDatabase.child(list[i]);
        fd.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Iterable<DataSnapshot> snapshotIterable = dataSnapshot.getChildren() ;
                Iterator<DataSnapshot> iterator = snapshotIterable.iterator();
                while (iterator.hasNext()) {
                    DataSnapshot dataSnapshot1 = iterator.next();
                    Product product = dataSnapshot1.getValue(Product.class);
                    Log.d("look","222222222222222222222222");
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
        Log.d("look","333333333333333333333333");
    }
}

你可以看到没有
D/look:22222
。为什么该行不起作用?

如果该行从未执行过,则表示您没有进入while循环。这意味着迭代器没有next。可能是因为snapshotIterable没有子项。

dataSnapshot
可能没有子项,这就是迭代器为空的原因,这导致在执行
时没有执行
D/look: 00000000000000000
D/look: 1111111111111111111
D/look: 333333333333333333333333
D/look: 333333333333333333333333
D/look: 333333333333333333333333
D/look: 444444444444444444