在 recyclerview 中使用自定义对话框
Using Custom Diaglogs in a recycler view
我正在尝试使用它,所以当用户点击 post 时,会弹出一个自定义对话框,询问用户是否确定要前进到下一个屏幕
我正在关注 CodingInFlows 有关如何实现此功能的视频
我正在处理的问题是在我的回收器适配器中我无法使用 getSupportFragmentManager
(视频中的 8:24)我认为问题是根据这个 post 我没有扩展片段管理器,但我不知道我是怎么做到的,因为它是一个回收器适配器
适配器
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
...
holder.parentLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openDialog();
//old code to open acitity
int pos = holder.getAdapterPosition();
Intent intent = new Intent(mContext, Confirmation_Activity.class);
intent.putExtra("Message_ID", blog_list.get(pos).getMessage_doc());
mContext.startActivity(intent);
}
});
}
public void openDialog(){
Confirmation_Dialog confirmation_dialog = new Confirmation_Dialog();
confirmation_dialog.show();
}
对话框
public class Confirmation_Dialog extends AppCompatDialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.layout_dialog, null);
builder.setView(view)
.setTitle("Are You Sure")
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
})
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
return builder.create();
}
}
我应该如何解决这个问题任何反馈都很好!
我使用
解决了这个问题
fragmentManager manager = ((AppCompatActivity)mContext).getSupportFragmentManager();
并将其传递为
confirmation_dialog.show(manager, "example dialog");
希望对您有所帮助!
我正在尝试使用它,所以当用户点击 post 时,会弹出一个自定义对话框,询问用户是否确定要前进到下一个屏幕
我正在关注 CodingInFlows 有关如何实现此功能的视频
我正在处理的问题是在我的回收器适配器中我无法使用 getSupportFragmentManager
(视频中的 8:24)我认为问题是根据这个 post 我没有扩展片段管理器,但我不知道我是怎么做到的,因为它是一个回收器适配器
适配器
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
...
holder.parentLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openDialog();
//old code to open acitity
int pos = holder.getAdapterPosition();
Intent intent = new Intent(mContext, Confirmation_Activity.class);
intent.putExtra("Message_ID", blog_list.get(pos).getMessage_doc());
mContext.startActivity(intent);
}
});
}
public void openDialog(){
Confirmation_Dialog confirmation_dialog = new Confirmation_Dialog();
confirmation_dialog.show();
}
对话框
public class Confirmation_Dialog extends AppCompatDialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.layout_dialog, null);
builder.setView(view)
.setTitle("Are You Sure")
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
})
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
return builder.create();
}
}
我应该如何解决这个问题任何反馈都很好!
我使用
解决了这个问题fragmentManager manager = ((AppCompatActivity)mContext).getSupportFragmentManager();
并将其传递为
confirmation_dialog.show(manager, "example dialog");
希望对您有所帮助!