问题描述
我正在显示一个“警报”对话框,该对话框运行良好,但是我在Internet上看到他们大多数使用方法底部的dialog.show();
。矿山几乎在顶部,如果我将其移至底部,它确实会崩溃,并且说: textview为null等,但如果dialog.show();
位于顶部,则可以正常工作。
我的问题是;我可以这样离开吗?还是以后会成为问题?您可以在下面看到“我的警报”对话框方法:
public void startSendMessageDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(UserActivity.this);
LayoutInflater inflater = getLayoutInflater();
builder.setView(inflater.inflate(R.layout.send_message_dialog,null));
builder.setCancelable(true);
dialogSendMessage = builder.create();
Window window = dialogSendMessage.getwindow();
assert window != null;
window.setGravity(Gravity.CENTER);
window.getAttributes().windowAnimations = R.style.DialogAnimation;
sendMessageDialogActive = true;
**dialogSendMessage.show();**
btn_send_message_dialog = dialogSendMessage.findViewById(R.id.btn_send_message_dialog);
MaterialButton btn_send_message_dialog_close = dialogSendMessage.findViewById(R.id.btn_send_message_dialog_close);
message_desc_tv = dialogSendMessage.findViewById(R.id.message_desc_tv);
message_succes_lay = dialogSendMessage.findViewById(R.id.message_succes_lay);
message_send_lay = dialogSendMessage.findViewById(R.id.message_send_lay);
MaterialButton btn_send_message_get_points = dialogSendMessage.findViewById(R.id.btn_send_message_get_points);
message_no_point_lay = dialogSendMessage.findViewById(R.id.message_no_point_lay);
tv_message_title = dialogSendMessage.findViewById(R.id.tv_message_title);
int prefPoints = Integer.parseInt(SharedPrefManager.getMyPoints());
boolean premium = SharedPrefManager.getMyPremium();
if (!premium && prefPoints < 1) {
tv_message_title.setText("Oh No!");
message_send_lay.setVisibility(View.GONE);
message_succes_lay.setVisibility(View.GONE);
message_no_point_lay.setVisibility(View.VISIBLE);
dialogSendMessage.getwindow().setBackgroundDrawableResource(android.R.color.transparent);
btn_send_message_get_points.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
closeSendMessageDialog();
Intent intentStore = new Intent(UserActivity.this,PointsActivity.class);
startActivity(intentStore);
overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_left);
finish();
}
});
dialogSendMessage.setondismissListener(dialog -> sendMessageDialogActive = false);
return;
}
tv_message_title.setText("Message " + getIntent().getExtras().getString("fname_name"));
message_desc_tv.requestFocus();
message_desc_tv.setFilters(new InputFilter[]{new MaxLinesInputFilter(4)});
btn_send_message_dialog_close.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
closeSendMessageDialog();
}
});
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
if(imm != null){
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT,0);
}
dialogSendMessage.setondismissListener(dialog -> sendMessageDialogActive = false);
dialogSendMessage.getwindow().setSoftInputMode(WindowManager.LayoutParams.soFT_INPUT_ADJUST_RESIZE);
dialogSendMessage.getwindow().setBackgroundDrawableResource(android.R.color.transparent);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)