2017-04-17 14 views
1

여기에서 묻기 전에 일부 튜토리얼을 따르려고했지만 다른 사람들의 튜토리얼에 따라 재현하려고 할 때 문자열 오류와 같은 것들에 대한 해시 맵이있었습니다. ,Firebase가 목록보기로 데이터를 반환합니다.

나는 내가 중포 기지의 값을 얻을 수 아래로하고 있어요 방법,하지만 난 (고기를 "식품"내부 정보 만 좀하고 싶습니다 다음과 같이

나의 의심은 닭, ..) 정보가 없으면 좋든 싫든. 그리고 함께 모으기보다는 항목을 나열하는 방법. 감사의

enter image description here

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 
import com.google.firebase.database.ChildEventListener; 
import com.google.firebase.database.DataSnapshot; 
import com.google.firebase.database.DatabaseError; 
import com.google.firebase.database.DatabaseReference; 
import com.google.firebase.database.FirebaseDatabase; 
import com.google.firebase.database.ValueEventListener; 
import java.util.ArrayList; 
import java.util.Map; 

public class MainActivity extends AppCompatActivity { 


    DatabaseReference dref; 
    ListView listview; 
    ArrayList <String> list = new ArrayList < >(); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

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

     final ArrayAdapter <String> adapter = new ArrayAdapter <String> (this, android.R.layout.simple_list_item_1, list); 

     dref = FirebaseDatabase.getInstance().getReference(); 

     dref.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 


       String teste = dataSnapshot.child("Restarant").child("foods").getValue().toString(); 

       adapter.add(teste); 
       listview.setAdapter(adapter); 
       adapter.notifyDataSetChanged(); 



      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 



    } 
} 
+0

정확하게 작동하지 않는 것을 명확히 할 수보십시오? 당신은 무엇을하려하고 있으며 예상되는 결과는 무엇입니까? 실제 출력? 감사합니다 – Cullub

+0

나는 상태 (고기, 돼지 고기, 닭고기) 내에서만 데이터를 가져오고 싶습니다. 현재는 다음과 같습니다 : {닭 = 좋음, 돼지 = 놀라운, 고기 = 좋다} 선. 그랬 으면 좋겠어. -pork -chicken -Meat – Csak

답변

0

public class MainActivity extends AppCompatActivity { 


DatabaseReference dref; 
ListView listview; 
ArrayList<String> list=new ArrayList<>(); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

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

    final ArrayAdapter<String> adapter= new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list); 

    dref=FirebaseDatabase.getInstance().getReference().child("Restarant"); 

    dref.child("foods").addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 


     list.add(dataSnapshot.child("chicken").getValue(String.class)); 
     list.add(dataSnapshot.child("meat").getValue(String.class)); 
     list.add(dataSnapshot.child("pork").getValue(String.class)); 


     listview.setAdapter(adapter); 
     adapter.notifyDataSetChanged(); 



    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}); 
} 
} 
+0

나는 이것을 시도했지만 나던 해봤 다. 04-17 21 : 46 : 04.106 10096-10096/cai.com.fireteste E/AndroidRuntime : FATAL EXCEPTION : 메인 프로세스 : cai .com.fireteste, PID : 10096 java.lang.NullPointerException : android.widget.ArrayAdapter.createViewFromResource (ArrayAdapter)의 null 객체 참조에서 가상 메소드 'java.lang.String java.lang.Object.toString()'을 호출하려고 시도했습니다. .java : 409) and com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776) ... – Csak

+0

데이터베이스를 제거 했습니까? –

+0

아니요, 데이터베이스는 활성 상태로 유지되며 내부에 같은 이름이 있습니다. – Csak

관련 문제