Partage
  • Partager sur Facebook
  • Partager sur Twitter

RecyclerView situé dans le BottomSheetDialogFragme

Récupération d'une valeur pour le Main

    28 novembre 2019 à 21:37:40

    Bonjour tout le monde,
    Je suis bloqué sur la récupération de la valeur de la "position"

    holder.setItemClickListener(new ItemClickListener() {
                @Override
                public void onItemClick(int pos) {
                    Log.e(TAG, ""+ holder.textView.getText().toString());
                    Log.e(TAG, ""+ pos);
                }

    (ligne 40),  afin que je puisse l'exploiter dans la partie MainActivity.class.

    Le but:
    Lors du choix du langage établi par un Click, je récupère la position et ça me ferme le bottomSheet puis je l'exploite cette valeur.


    Merci d'avance pour vos réponses. Bonne journée !!

    public class MainActivity extends AppCompatActivity implements ModalBottomSheet.ActionListener{
    
        private TextView mStatusTextView;
        RecyclerView recyclerView;
        ArrayList<User> users= new ArrayList<>();
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            initBottom();
        }
    
    
        private void initBottom(){
            Button showButton = findViewById(R.id.btn_bottom_sheet);
            showButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    ModalBottomSheet modalBottomSheet= new ModalBottomSheet();
                    modalBottomSheet.setActionLister(MainActivity.this);
                    modalBottomSheet.show(getSupportFragmentManager(), "modalMenu");
                }
            });
            mStatusTextView= findViewById(R.id.textStatus);
        }
    
    
        public ArrayList<User> getL(){
            String[] langName={"Android","Angular","Python","C++"};
            
            users= new ArrayList<>();
            for (int i=0;i<langName.length;i++){
                User model = new User(langName[i]);
                users.add(model);
            }
            return users;
        }
    
        @Override
        public void onButtionClick(int id) {
        }
    
    }
    public class ModalBottomSheet extends BottomSheetDialogFragment {
        public View v;
        public RecyclerView recyclerView;
        Context context;
        private  ActionListener mActionListener;
        private static final String TAG = "MainActivity";
    
        @Nullable
        @Override
        public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            v = inflater.inflate(R.layout.bottom_sheet,container,false);
            recyclerView = v.findViewById(R.id.recycler_view);
            context = recyclerView.getContext();
    
    
            MainActivity mainActivity = new MainActivity();
            LinearLayoutManager layoutManager = new LinearLayoutManager(context,LinearLayoutManager.VERTICAL,false);
            recyclerView.setLayoutManager(layoutManager);
            recyclerView.setItemAnimator(new DefaultItemAnimator());
    
            //Initialize MainAdapter
            MainAdapter mainAdapter = new MainAdapter(context, mainActivity.getL());
            //Set MainAdapter to RecyclerView
            recyclerView.setAdapter(mainAdapter);
    
            return v;
        }
    
        public void setActionLister(ActionListener actionListener){
            mActionListener = actionListener;
        }
        interface  ActionListener{void onButtionClick(int id);
        }
    
    }
    public class MainAdapter extends RecyclerView.Adapter<MainAdapter.ViewHolder>{
        ArrayList<User> users;
        Context context;
        private static final String TAG = "MainActivity";
    
        public MainAdapter(Context context, ArrayList<User>user){
            this.context = context;
            this.users= user;
        }
    
        @NonNull
        @Override
        public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_item,parent,false);
            return new ViewHolder(view);
        }
    
        @Override
        public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
            //Set Name to TextView
            holder.textView.setText(users.get(position).getName());
    
            holder.setItemClickListener(new ItemClickListener() {
                @Override
                public void onItemClick(int pos) {
                    Log.e(TAG, ""+ holder.textView.getText().toString());
                    Log.e(TAG, ""+ pos);
                }
            });
        }
        @Override
        public int getItemCount() {
            return users.size();
        }
    
        //--------------------------------------------------------
        public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
            //Initialize Variable
            TextView textView;
            ItemClickListener itemClickListener;
    
            public ViewHolder(@NonNull View itemView) {
                super(itemView);
                //Assign Variable
                textView= itemView.findViewById(R.id.text_view);
                itemView.setOnClickListener(this);
            }
            
            @Override
            public void onClick(View view) {
                this.itemClickListener.onItemClick(this.getLayoutPosition());
            }
    
            public void setItemClickListener(ItemClickListener itemClickListener){
                this.itemClickListener=itemClickListener;
            }
        }
    
    }





    • Partager sur Facebook
    • Partager sur Twitter

    RecyclerView situé dans le BottomSheetDialogFragme

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown