public void loadSpinner() {
         ArrayAdapter<Object> spinnerAdapter = new ArrayAdapter<Object>(this, R.layout.list_item_textview, license);
         spinnerAdapter
                 .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
         mSpinner.setAdapter(spinnerAdapter);
         mSpinner
                 .setOnItemSelectedListener(new OnItemSelectedListener() {
  
                     public void onItemSelected(AdapterView<?> parent,
                             View view, int pos, long id) {
                         parent.setVisibility(View.VISIBLE);
                      /*   MainActivity.this.currentRssurl = MainActivity.this.license[pos];*/
                     }
  
                     public void onNothingSelected(AdapterView parent) {
                         // Do nothing.
                     }
                 });
     }
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
settingService = new SettingService(this); service = new SettingService(this);


context = MainActivity.this; init();


button = (Button) findViewById(R.id.baojing);

startalarm = service.getInt("alarmTemp");
if (startalarm <= 0) {
startalarm = 0;
/* txtAlarm.setText("是"); */
AlarmManager.setStart(true);
} else {
/*startalarm = 0;
 txtAlarm.setText("否"); */
startalarm=1;
AlarmManager.setStart(false);
button.setVisibility(View.INVISIBLE);
}

/* BMapView gps = new BMapView(); */ /* ShiTi shiTi = new ShiTi(); */
/*
 * shiTi.getTime(); shiTi.getGpsString();
 */
button.setOnClickListener(new View.OnClickListener() { private Button b1;
private Button b2;
private Button b3; public void onClick(View v) { LayoutInflater factory = LayoutInflater.from(MainActivity.this);
View v1 = factory.inflate(R.layout.selector, null);

/* View v1=(View)getLayoutInflater().inflate(R.layout.selector,null);*/
//这两个就不是一样东西啊??????

/* page = (TextView) v1.findViewById(R.id.page);
page.setText(pageid + "");*/

 LinearLayout linearLayout = new LinearLayout(MainActivity.this);
 
 /*linearLayout.addView(listView1,1);*/
 
 /*linearLayout.inflate(context, resource, root)*/
/*linearLayout.addView(mSpinner);*/

linearLayout.setOrientation(LinearLayout.VERTICAL);

listView11 = (ListView) v1.findViewById(R.id.list);


listView11.addHeaderView(listView1); /* checkbox1 = (CheckBox) v1.findViewById(R.id.checkBox1);*/

/*textview4= (TextView) v1.findViewById(R.id.textView4);*/

mSpinner = (Spinner) v1.findViewById(R.id.spinner1);
context=getApplicationContext();


window.setBackgroundDrawable(new BitmapDrawable());


window.setOutsideTouchable(true);
window.setFocusable(true);
window.showAsDropDown(v,100,130);
window.update();
/* window.dismiss(); */
/*window.setBackgroundDrawable(new BitmapDrawable());*/
if (null == window/*||window.isShowing()*/) {
window.dismiss();
}
} private void drawTitleLayout() {
// TODO Auto-generated method stub

} });

解决方案 »

  1.   

    android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@41052610 is not valid; is your activity running?
      

  2.   

    在点击Spinner时会报错,然后不太清楚getParent()的用法和原理。parent = LayoutInflater.from(this.getParent()).inflate(R.layout.main,null); 如果写成这样也会报错
      

  3.   

     ArrayAdapter<Object> spinnerAdapter = new ArrayAdapter<Object>(this, R.layout.list_item_textview, license);不知道是不是这里的this的问题
      

  4.   

    Mainactivity.this也报错getApplication报错getcontext报错getParent也报错
      

  5.   

    在xml中设置spinner为可点击
    还有,直接用this,试试吧
      

  6.   

    应该是点击spinner弹出的popup窗口找不到activity的上下文
      

  7.   

    sipnner点击的下拉菜单就类似是个popupwindow
      

  8.   

    其实可以用个下拉模式的popupWindow:showAsDropdown(view)代替spinner,布局自己写一下,效果也是一样
      

  9.   

    showAsDropdown不是popwindow的位置吗??
      

  10.   

    不是啊,位置都是通过showAtLocation,这个是popupwindow弹出来的方式,例如actionbar上面的菜单下拉其实就是用的这个
      

  11.   

    我可以说求代码吗,我快完不成任务了~但我在popwindow需要放两个控件,根据spinner选择刷新listview列表~
      

  12.   

    不是啊,位置都是通过showAtLocation,这个是popupwindow弹出来的方式,例如actionbar上面的菜单下拉其实就是用的这个sorry,弄错了,showAsDropdown就是popwindow的位置你可以通过showAsDropdown(view v,x, y)来调整popupwindow的位置。其实和你第一个弹出来的popupwindow,没什么两样,你完全可以用你第一个popupwindow方法写出来