Итак, я работаю над картографическим приложением (для ботанического сада), которое позволяет мне искать данные, хранящиеся в базе данных SQL, для хранения имен и координат различных видов растений (у меня есть база данных, настроенная и работающая) ,
Основная проблема, с которой я сталкиваюсь, - это правильное функционирование панели поиска. У меня есть панель поиска материала, наложенная на мою карту должным образом, и я могу искать свои данные SQL, однако, я использую представление recycler для отображения моих данных SQL, которое накладывается на мою карту, что делает функцию поиска совершенно бесполезной, поскольку она покрытие карты.
Я действительно не уверен, как правильно заставить свернуть представление recycler или реализовать другой метод, чтобы мои данные SQL заполнялись в результатах поиска материалов, а не просто накладывались на мою карту. Вот мой метод OnCreate, в котором я настроил панель поиска материала и представление переработчика. Буду признателен за любые предложения / помощь, так как я изо всех сил пытаюсь найти руководства / документацию в Интернете.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
//Code used to remove/add droplist to material search bar
recyclerView = (RecyclerView)findViewById(R.id.recycler_search);
layoutManager= new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
materialSearchBar = (MaterialSearchBar)findViewById(R.id.search_bar);
database = new Database(this);
materialSearchBar.setText("Search around The Gardens");
materialSearchBar.setCardViewElevation(10);
// loadSuggestList();
materialSearchBar.addTextChangeListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
List<String> suggest = new ArrayList<>();
for(String search:suggestList)
{
if(search.toLowerCase().contains(materialSearchBar.getText().toLowerCase()))
{
suggest.add(search);
}
}
materialSearchBar.setLastSuggestions(suggest);
}
@Override
public void afterTextChanged(Editable s) {
}
});
materialSearchBar.setOnSearchActionListener(new MaterialSearchBar.OnSearchActionListener() {
@Override
public void onSearchStateChanged(boolean enabled) {
if(!enabled)
{
recyclerView.setAdapter(adapter);
}
}
@Override
public void onSearchConfirmed(CharSequence text) {
startSearch(text.toString());
}
@Override
public void onButtonClicked(int buttonCode) {
}
});
//USED IN DATABASE CLASS
adapter = new SearchAdapter(this,database.getTrees());
recyclerView.setAdapter(adapter);
Данные SQL с пересекающимися картами с видом переработчика