(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;
}
}
}
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.