Как мне найти ListView внутри фрагмента из моей основной деятельности? - PullRequest
0 голосов
/ 01 марта 2020

У меня есть действие с панелью инструментов, на которой есть значок поиска. Это упражнение имеет вид нижней навигации с тремя вкладками. Каждый фрагмент в основном имеет только представление списка, а адаптер для этого имеет фильтр. Как я должен вызывать функцию фильтра адаптера из моей основной деятельности? Я открываю фрагменты, подобные этому, в onCreate (пока они все являются одним и тем же фрагментом):

    BottomNavigationView navigation = findViewById(R.id.bottomNavigation);

    final FragmentManager fragmentManager = getSupportFragmentManager();

    // define your fragments here
    final Fragment fragment1 = new VideoListFragment();
    final Fragment fragment2 = new VideoListFragment();
    final Fragment fragment3 = new VideoListFragment();

    // handle navigation selection
    navigation.setOnNavigationItemSelectedListener(
            new BottomNavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                    Fragment fragment;
                    switch (item.getItemId()) {
                        case R.id.navigation_home:
                            fragment = fragment1;
                            break;
                        case R.id.navigation_playlists:
                            fragment = fragment2;
                            break;
                        case R.id.navigation_favorites:
                        default:
                            fragment = fragment3;
                            break;
                    }
                    fragmentManager.beginTransaction().replace(R.id.framelayout, fragment).commit();
                    return true;
                }
            });
    // Set default selection
    navigation.setSelectedItemId(R.id.navigation_home);

У меня есть это в основном упражнении, чтобы получить информацию с панели инструментов:

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu, this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.action_bar, menu);

    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchVieww = (SearchView) searchItem.getActionView();

    searchVieww.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            //Somehow filter the list of the current fragment?
            return false;
        }
    });

    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...