我無法找到如何做簡單的事情。我使用自定義ArrayAdapter在Android中填充ListView。我使用此代碼來填充列表視圖:將OnItemClickListener與Firebase結合使用
mRouteListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Route route = dataSnapshot.getValue(Route.class);
adapter.add(route);
}
This works。我想設置一個OnItemClickListener的物品在我的列表視圖像這樣:
ListView routeListView = (ListView) findViewById(R.id.list);
// Find and set empty view on the ListView, so that it only shows when the list has 0 items.
View emptyView = findViewById(R.id.empty_view);
routeListView.setEmptyView(emptyView);
ArrayList<Route> routeList = new ArrayList<>();
adapter = new RouteAdapter(this, routeList);
// may want to change this to FirebaseAdapter
routeListView.setAdapter(adapter);
routeListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent i = new Intent(Wall10Activity.this, SingleRouteActivity.class);
// I want to start a new activity then query the db to populate the information.
startActivity(i);
}
});
我想不通的是如何查詢從SingleRoute.class數據庫從視圖中的所有數據,他們點擊。我無權訪問隨機生成的密鑰。它存儲就像這樣:
{
"routes" : {
"-KcyQUzuVogjq3yPnr9u" : {
"color" : 0,
"grade" : 10,
"name" : "YELLOW"
}
}
}
Did not really get your question,you have data mapped to Route class and added到適配器..什麼'我無法弄清楚是如何從SingleRoute.class'查詢數據庫的意思? –
對不起,我可以更清楚。我有一個列表視圖,其中包含來自數據庫中對象的信息。當我點擊一個視圖時,我想啓動一個新的活動,我可以使用數據庫對象中包含的更詳細信息來填充該活動。 – Kyle
然後在執行'startActivity(i)'的時候onClick;'你可以通過'route-> routelist.get(position)'這個包含詳細信息對象的intent並在activity中訪問它。 –