如何在 recyclerview 中为每个 cardview 实现单选警报对话框?
How to implement a single choice alert dialog to each cardview in recyclerview?
我是 Android 开发的新手。我正在构建一个在 recyclerview 中具有卡片视图的应用程序。我想制作一个单选警报对话框列表并处理它们。我正在使用 FirebaseUI 库来填充 recyclerview。
这是我的 ViewHolder class:
public class FriendListViewHolder extends RecyclerView.ViewHolder{
public CircleImageView friendPhoto;
public TextView friendName;
public CardView friendsCardView;
public FriendListViewHolder(@NonNull final View itemView) {
super(itemView);
friendPhoto = itemView.findViewById(R.id.friendProfilePhoto);
friendName = itemView.findViewById(R.id.friendNameText);
friendsCardView = itemView.findViewById(R.id.friends_cardview);
}
}
每当用户点击卡片视图时,都会弹出警报对话框。但是请记住,我需要知道选择了哪个carview。
我正在尝试但未经过测试,概念是这样的,如果不适合您请告诉我
public class FriendListViewHolder extends RecyclerView.ViewHolder{
public CircleImageView friendPhoto;
public TextView friendName;
public CardView friendsCardView;
public FriendListViewHolder(@NonNull final View itemView) {
super(itemView);
friendPhoto = itemView.findViewById(R.id.friendProfilePhoto);
friendName = itemView.findViewById(R.id.friendNameText);
friendsCardView = itemView.findViewById(R.id.friends_cardview);
friendsCardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(itemView.getContext())
.setTitle("Title of the alert dialog")
.setMessage("The body of the alert dialog")
// Specifying a listener allows you to take an action before dismissing the dialog.
// The dialog is automatically dismissed when a dialog button is clicked.
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Continue with delete operation
}
})
// A null listener allows the button to dismiss the dialog and take no further action.
.setNegativeButton(android.R.string.no, null)
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
}
});
}
}
尽管参考那些问题RecyclerView onClick, How do I display an alert dialog on Android?
在您的适配器中 class 重写 onBindViewHolder 方法,如下所示
@Override
protected void onBindViewHolder(@NonNull FriendListViewHolder holder, final int position, @NonNull Model model) {
holder.friendsCardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(context)
.setTitle("CardView Position")
.setMessage("CardView Position is " + String.valueOf(position))
.setCanceledOnTouchOutside(true)
.show();
}
});
}
以上代码将显示一个警告对话框,其中包含已单击的 cardView 的位置。希望对您有所帮助
我是 Android 开发的新手。我正在构建一个在 recyclerview 中具有卡片视图的应用程序。我想制作一个单选警报对话框列表并处理它们。我正在使用 FirebaseUI 库来填充 recyclerview。
这是我的 ViewHolder class:
public class FriendListViewHolder extends RecyclerView.ViewHolder{
public CircleImageView friendPhoto;
public TextView friendName;
public CardView friendsCardView;
public FriendListViewHolder(@NonNull final View itemView) {
super(itemView);
friendPhoto = itemView.findViewById(R.id.friendProfilePhoto);
friendName = itemView.findViewById(R.id.friendNameText);
friendsCardView = itemView.findViewById(R.id.friends_cardview);
}
}
每当用户点击卡片视图时,都会弹出警报对话框。但是请记住,我需要知道选择了哪个carview。
我正在尝试但未经过测试,概念是这样的,如果不适合您请告诉我
public class FriendListViewHolder extends RecyclerView.ViewHolder{
public CircleImageView friendPhoto;
public TextView friendName;
public CardView friendsCardView;
public FriendListViewHolder(@NonNull final View itemView) {
super(itemView);
friendPhoto = itemView.findViewById(R.id.friendProfilePhoto);
friendName = itemView.findViewById(R.id.friendNameText);
friendsCardView = itemView.findViewById(R.id.friends_cardview);
friendsCardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(itemView.getContext())
.setTitle("Title of the alert dialog")
.setMessage("The body of the alert dialog")
// Specifying a listener allows you to take an action before dismissing the dialog.
// The dialog is automatically dismissed when a dialog button is clicked.
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Continue with delete operation
}
})
// A null listener allows the button to dismiss the dialog and take no further action.
.setNegativeButton(android.R.string.no, null)
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
}
});
}
}
尽管参考那些问题RecyclerView onClick, How do I display an alert dialog on Android?
在您的适配器中 class 重写 onBindViewHolder 方法,如下所示
@Override
protected void onBindViewHolder(@NonNull FriendListViewHolder holder, final int position, @NonNull Model model) {
holder.friendsCardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(context)
.setTitle("CardView Position")
.setMessage("CardView Position is " + String.valueOf(position))
.setCanceledOnTouchOutside(true)
.show();
}
});
}
以上代码将显示一个警告对话框,其中包含已单击的 cardView 的位置。希望对您有所帮助