GridView не отображается в первый раз - PullRequest
0 голосов
/ 21 января 2020

Я хочу отобразить mygridview, он работает нормально, но сначала он не отображается, я пытался использовать его до и после того, как "setOnItemClickListener" все еще не работает, я пытался отложить его, возможно, это из-за Graphi c вещи тоже ничего ... есть идеи, ребята? это часть моего прогресса в работе, где я верю в это, я останавливаюсь


    private GenreAdapter NavAdapter;
    private ListView listView;
    TextView textView;
    GridView recyclerView;

    ArrayList<Films> chosenListOfMovies = new ArrayList<Films>();
    MovieAdapter movieAdapter;
    int pos =0 ;

 listView = (ListView) findViewById(R.id.mobile_list);
        NavAdapter = new GenreAdapter(getApplicationContext(), Constants.categoryMovies);
        textView = (TextView) findViewById(R.id.text);
        recyclerView = (GridView)findViewById(R.id.listeProduit);
        listView.setAdapter(NavAdapter);
        listView.requestFocus();
        remplir_liste(1);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                remplir_liste(position);


            }
        });
        listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                remplir_liste(position);
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_DPAD_UP:
                if(!recyclerView.hasFocus()) {
                    pos = listView.getSelectedItemPosition() + 1;
                    if (pos == 1) {
                        pos = listView.getAdapter().getCount() - 1;
                    }
                    listView.setItemChecked(pos, true);
                    listView.setSelection(pos);
                }

                break;
            case KeyEvent.KEYCODE_DPAD_DOWN:
                if(!recyclerView.hasFocus()) {

                    pos = listView.getSelectedItemPosition() - 1;
                    if (pos == listView.getAdapter().getCount() - 2) {
                        pos = 0;
                    }
                    listView.setItemChecked(pos, true);
                    listView.setSelection(pos);
                }

                break;
            case KeyEvent.KEYCODE_BACK:
                if(recyclerView.isSelected()){
                    recyclerView.clearFocus();
                    listView.requestFocus();
                }else{
                    refreshlist();
                    finish();
                }
        }
        return false;
        }
public void remplir_liste(int x){
        chosenListOfMovies.clear();
        for(Films film: Constants.listOfFilms){
            if (film.getGenre().equals(Constants.categoryMovies.get(x))){
                chosenListOfMovies.add(film);
            }
        }
        movieAdapter = new MovieAdapter(getApplicationContext(),chosenListOfMovies);
        recyclerView.setAdapter(movieAdapter);
        recyclerView.clearFocus();


        textView.setText("nombre de films ("+chosenListOfMovies.size()+"/"+ Constants.listOfFilms.size()+")");
    }


...