3
嗨我有一個alertdialog,當你點擊一個列表視圖中的項目時創建,我試圖從我的活動中獲取文件,描述,作者等名稱,並顯示它在我的alertdialog中,但.setText不起作用,有人可以幫忙。謝謝,這裏是我的代碼:http://pastebin.com/FzWSPp5eAndroid AlertDialog SetText
嗨我有一個alertdialog,當你點擊一個列表視圖中的項目時創建,我試圖從我的活動中獲取文件,描述,作者等名稱,並顯示它在我的alertdialog中,但.setText不起作用,有人可以幫忙。謝謝,這裏是我的代碼:http://pastebin.com/FzWSPp5eAndroid AlertDialog SetText
這完全不是你如何正確使用Android中的對話框。你需要在onCreateDialog的覆蓋來定義對話框,如文檔中描述:
http://developer.android.com/guide/topics/ui/dialogs.html
這個指南,你應該能夠解決您的問題。這是我剛纔複製並從一個隨機的應用程序粘貼的一個例子:
@Override
protected Dialog onCreateDialog(int id, Bundle b) {
LayoutInflater inflater = (LayoutInflater) this.getSystemService(this.LAYOUT_INFLATER_SERVICE);
AlertDialog.Builder builder = null;
switch(id) {
case DIALOG_BLOCK_SIZE:
{
Dialog dialog = new Dialog(this);
final View dialogLayout = inflater.inflate(R.layout.dialog_block_size, null);
builder = new AlertDialog.Builder(this);
builder.setView(dialogLayout);
builder.setTitle("Set Block Size");
final EditText blockIn = (EditText)dialogLayout.findViewById(R.id.block_size_in);
blockIn.setText(new Integer(pref.getInt("block_size", 6)).toString());
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
SharedPreferences.Editor editor = pref.edit();
editor.putInt("block_size", new Integer(blockIn.getText().toString()));
editor.commit();
////////TODO///////////
//notify MinutemaidService that we have changed the block_size
dialog.dismiss();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
dialog = builder.create();
return dialog;
}
default:
{
return null;
}
}
return dialog;
}
與上面的代碼,你可以調用的ShowDialog(DIALOG_BLOCK_SIZE),以顯示該對話框。還要注意對話框會被創建一次並一遍又一遍地顯示。強制重建對話框,在調用showDialog(int)之前調用removeDialog(int)。覆蓋onPrepareDialog()是最好的方法,但使用removeDialog的工作,它更容易。