我試圖在android生成一個自定義的對話框。我像下邊這樣創建我的對話框:
dialog = new Dialog(this);
dialog.setContentView(R.layout.my_dialog);
除了對話框的title,其他的都很好。就算我不設置對話框的title,當對話框彈出的時候仍然有一個空白的地方。
有什麼方法可以隱藏掉這個空白的地方麼?
我用 AlertDialog試了,但是看起來布局設置不是很正確:
LayoutInflater inflater = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.map_dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(view);
// dialog = new Dialog(this);
// dialog.setContentView(R.layout.map_dialog);
dialog = builder.create();
((TextView) dialog.findViewById(R.id.nr)).setText(number);
如果我用這個代碼,我會在最後一行得到一個空指針異常。對話框不是空的,所以我嘗試查找的TextView不存在。
如果在我使用對話框的構造函數部分取消注釋的部分,一切都很好,除了我的對話框布局上的title部分。
你需要使用到 AlertDialog。
在這麼短的總結,你的代碼就像是從官網中復制的一樣。那需要一個自定義布局文件,給它一些基本的文本和圖標,然後創建它。然後顯示它,再用alertDialog.show()
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater)
mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog,
(ViewGroup) findViewById(R.id.layout_root));
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(R.drawable.android);
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();