我在循环适配器中设置对话框,但它给出了错误。
android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不适用于应用程序。
我搜索了很多,但所有的答案都说改变了getActivity的上下文,但在回收适配器中我没有选择那样。
我在谷歌和堆栈溢出搜索了很多,但没有找到解决方案
@NonNull
@Override
public StopRecycleAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view=LayoutInflater.from(context1).inflate(R.layout.bus_recycle_lyout,viewGroup,false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull final StopRecycleAdapter.MyViewHolder viewHolder, int i) {
item1=item.get(i);
viewHolder.stop.setText(item1.getStop());
viewHolder.stop_serial.setText(item1.getStopTitle());
mdialog=new Dialog(context1);
mdialog.setContentView(R.layout.update_stop_dialog);
mdialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
viewHolder.linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
EditText update_stop=mdialog.findViewById(R.id.update_stop);
update_stop.setText("hlw");
mdialog.show();
}catch (Exception e){
Toast.makeText(context1,"error "+e,Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public int getItemCount() {
return item.size();
}
我希望当用户点击回收视图时,对话框会打开。
您可以在这里查看异常情况
if (alertDialog != null && alertDialog.isVisible()) {
}
要么
if(!context.isFinishing()){
builder.show();
}