たとえば、私はデータベースにA、B、C、Dの4人の子供がいます。それぞれには 'countryName'という名前の属性があります。 Aは英国、Bはフランス、Cはイタリア、Dはイタリアがあると仮定する。これらのチルダはリストとして表示され、リストの上には3つのオプション(英国、フランス、イタリア)のスピナーがあります。デフォルトでは、4人の子供がすべてリストビューで表示されます。スピナーで英国を選んだ後、オブジェクトAしか見ることはできません。私はSpinnerでイタリアを選択し、リストビューでオブジェクトCとDを表示します。私はさまざまなパラメータでデータベースにクエリを呼び出す方法を知りません。ここでは、スピナーのための私のコードは次のとおりです。AndroidのGoogle FirebaseデータベースSpinnerでの問い合わせ
spinCountry = (Spinner) findViewById(R.id.spinCountry);
ArrayAdapter<CharSequence> spinAdapter = ArrayAdapter.createFromResource(this,
R.array.country_array, android.R.layout.simple_spinner_item);
spinAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinCountry.setAdapter(spinAdapter);
spinCountry.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//Get whatever is chosen on a spinner
String spinnerCountry = parent.getItemAtPosition(position).toString();
//Here is my query which on SQL would be 'SELECT * FROM THE DATABASE WHERE countryName EQUALS TO'country on a chosen on spinner'
Query querySpinner = mLocationDatabaseReference.orderByChild("countryName").equalTo(spinnerCountry);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
[FIX]
は、だから私はフランク・バンPuffelenにより示唆されるようにリスナーを追加することによって、私の問題を解決するために管理しました。
mLocationAdapter.clear();
querySpinner.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
locationCurrent = dataSnapshot.getValue(LocationCurrent.class);
mLocationAdapter.add(locationCurrent);
}...
//Everything else is empty on addChildEventListener method so no point pasting it here
あなたの質問は申し訳ございません。何を聞いていますか?実際にそのクエリからデータを取得する方法は? –
クエリ結果を取得するには、[リスナーを添付する]必要があります(https://firebase.google.com/docs/database/android/lists-of-data#child-events)。クエリを扱う多くの質問については、http://stackoverflow.com/search?q=%5Bfirebase-database%5D%5Bandroid%5D+queryを参照してください。それらには、インスピレーションのために使用できる多くのコードが含まれています。 –
LocationCurrentクラスのコンテンツを表示できますか? –