我正在使用 AlertDialog.Builder 创建自定义 AlertDialog。但是,我无法让我的微调器在 AlertDialog 中工作。每当我单击微调器时,我都会收到一条错误消息
android.view.WindowManager BadTokenException: Unable to add window--token null
is not for an application
最初,我认为这是由于我的自定义适配器造成的,但这不是错误的原因。我不明白为什么会这样。多年来,我一直以这种方式编码我的微调器,但从未遇到过这个问题。这是我的代码。提前致谢。
public void openCustomDialog(){
AlertDialog.Builder customDialog= new AlertDialog.Builder(Portfolio.this);
customDialog.setTitle("Create Portfolio");
LayoutInflater layoutInflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view=layoutInflater.inflate(R.layout.createdialog,null);
EditText enterportfolioname = (EditText)view.findViewById(R.id.enterportfolioname);
Spinner denominationselection = (Spinner)view.findViewById(R.id.denomination);
ArrayAdapter<String> adaptercreatetype;
createdenominationsarray = getResources().getStringArray(R.array.createdenominations);
adaptercreatetype = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,createdenominationsarray){
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent)
{
View v = null;
// If this is the initial dummy entry, make it hidden
if (position == 0) {
TextView tv = new TextView(getContext());
tv.setHeight(0);
tv.setVisibility(View.GONE);
v = tv;
}
else {
// Pass convertView as null to prevent reuse of special case views
v = super.getDropDownView(position, null, parent);
}
// Hide scroll bar because it appears sometimes unnecessarily, this does not prevent scrolling
parent.setVerticalScrollBarEnabled(false);
return v;
}
};
adaptercreatetype.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
denominationselection.setAdapter(adaptercreatetype);
customDialog.setPositiveButton("Save", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog,int which) {
// TODO Auto-generated method stub
}});
customDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog,int which) {
// TODO Auto-generated method stub
}});
customDialog.setView(view);
customDialog.show();
}