我的应用程序中需要一个对话框,其外观多样化,我的意思是,例如有一次我需要一个只有按钮的对话框,而另一次我需要它有2个纽扣。我也想要它的一些功能,比如它的图像根据它的使用而不同!任何人都可以建议我如何实施它? 对于我的解决方案,我搜索了一些网站,并且我在下面的链接中的代码中实现了在CustomDialogClass中实现的对话框,但是它没有显示对话框,任何人都可以帮助我。可以展示吗?
答案 0 :(得分:0)
您可以为每个对话框添加不同的布局。一个按钮的一个布局,其他是按钮和图像等。
示例:强>
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom); //the layout of your custom dialog
dialog.setTitle("Title...");
dialog.show();
您可以在dialog
中找到有关如何实施操作的更多信息here。
答案 1 :(得分:0)
我认为您需要的是Dialog
,而不是Dialog
主题Activity
。当发生这种情况时,每次要显示对话框时都必须启动(新)活动。
相反,您可以使用Dialog
之类的:
// custom dialog
final Dialog dialog = new Dialog(context);
//specify to not display the default title/header to customize the whole layout
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.setContentView(R.layout.custom_layout_here);
// set the custom dialog components - text, image and button
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText(message);
//from the following part- buttons can be managed for your custom layout
Button dialogButton = (Button) dialog.findViewById(R.id.buttonOk);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
//if you want another button, add it here, just like the one above
//play with the visibility of button(or components) to hide or show acc to your requirement
dialog.show();
答案 2 :(得分:0)
final Dialog d = new Dialog(DisplayUserData.this);
d.requestWindowFeature(Window.FEATURE_NO_TITLE); //before
d.setContentView(R.layout.edit_msg_dialog);
ImageView ivCross = (ImageView) d.findViewById(R.id.ivCross_msg);
final EditText et_Message = (EditText) d.findViewById(R.id.etMessage);
TextView tv_OK = (TextView) d.findViewById(R.id.tvOkButton);
TextView tv_SKIP = (TextView) d.findViewById(R.id.tvSkipButton);
tv_OK.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(et_Message.getText().toString().length()>= 40){
Toast.makeText(getApplicationContext(),"You Can not enter more then 40 characters.", Toast.LENGTH_SHORT).show();
}else if(et_Message.getText().toString().length()< 1){
Toast.makeText(getApplicationContext(),"Please Enter something", Toast.LENGTH_SHORT).show();
}else {
d.dismiss();
msgWritten = et_Message.getText().toString();
submittData();
}
}
});
ivCross.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
d.cancel();
}
});
tv_SKIP.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
d.cancel();
submittData();
}
});
d.show();
d.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
WindowManager.LayoutParams lp = d.getWindow().getAttributes();
lp.dimAmount = 0.7f;
d.getWindow().setAttributes(lp);