Java android.view.WindowManager$BadTokenException:无法添加窗口,您的活动正在运行吗?
我的活动有一个弹出窗口,我的弹出窗口工作正常,直到我点击微调器,它给了我一个错误,如logcat所说:Java android.view.WindowManager$BadTokenException:无法添加窗口,您的活动正在运行吗?,java,android,spinner,popupwindow,Java,Android,Spinner,Popupwindow,我的活动有一个弹出窗口,我的弹出窗口工作正常,直到我点击微调器,它给了我一个错误,如logcat所说: 11-01 15:28:31.131: E/AndroidRuntime(10846): android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@41f56ec8 is not valid; is your activity runni
11-01 15:28:31.131: E/AndroidRuntime(10846): android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@41f56ec8 is not valid; is your activity running?
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.view.ViewRootImpl.setView(ViewRootImpl.java:692)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:345)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.view.Window$LocalWindowManager.addView(Window.java:556)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.widget.PopupWindow.invokePopup(PopupWindow.java:1013)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:922)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.widget.ListPopupWindow.show(ListPopupWindow.java:595)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.widget.Spinner$DropdownPopup.show(Spinner.java:983)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.widget.Spinner.performClick(Spinner.java:608)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.view.View$PerformClick.run(View.java:17337)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.os.Handler.handleCallback(Handler.java:615)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.os.Handler.dispatchMessage(Handler.java:92)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.os.Looper.loop(Looper.java:137)
11-01 15:28:31.131: E/AndroidRuntime(10846): at android.app.ActivityThread.main(ActivityThread.java:4895)
11-01 15:28:31.131: E/AndroidRuntime(10846): at java.lang.reflect.Method.invokeNative(Native Method)
11-01 15:28:31.131: E/AndroidRuntime(10846): at java.lang.reflect.Method.invoke(Method.java:511)
11-01 15:28:31.131: E/AndroidRuntime(10846): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
11-01 15:28:31.131: E/AndroidRuntime(10846): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
11-01 15:28:31.131: E/AndroidRuntime(10846): at dalvik.system.NativeStart.main(Native Method)
这是我的代码:
imgSearch.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// Intent cari= new Intent(MerchantSimasCard.this,Pencarian.class);
// startActivity(cari);
LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
final View popupSet = inflater.inflate(R.layout.cari, null);
spin_all=(Spinner)popupSet.findViewById(R.id.spin_kategori);
spin_kota=(Spinner)popupSet.findViewById(R.id.spin_kota);
spin_abjad=(Spinner)popupSet.findViewById(R.id.spin_abjad);
search=(EditText)popupSet.findViewById(R.id.search);
buttonsearch=(Button)popupSet.findViewById(R.id.buttonsearch);
final PopupWindow pw = new PopupWindow(popupSet, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true);
new SpinnerKategori().execute();
buttonsearch.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (ListMerchant.size()>0) {
ListMerchant.clear();
ListChildMerchantChild.clear();
}
String url1 = null;
try {
url1 = "http://www3.abc.co.id/";
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
pw.dismiss();
System.out.println(url1);
new TerbaruAsyncTask(url1).execute();
}
});
pw.showAtLocation(findViewById(R.id.merchantsimascard), Gravity.CENTER, 0, 0);
}
});
public class SpinnerKategori extends AsyncTask<Void, Void, String>{
String url ="http://www3.sinarmasmsiglife.co.id/E-Policy/ios/sc_merchant.htm?s=1";
public SpinnerKategori(){
this.url=url;
}
@Override
protected void onPreExecute(){
super.onPreExecute();
dialog=ProgressDialog.show(MerchantSimasCard.this,"", "melakukan pengambilan data");
}
@Override
protected String doInBackground(Void... params) {
String result="";
try {
result=Connection.get(url);
}catch (Exception e){
result="";
}
return result;
}
@Override
protected void onPostExecute(String result){
super.onPostExecute(result);
ParsingCategory(result.replace("\n", "").trim());
ArrayAdapter<String> spinnerMenu = new ArrayAdapter<String>(MerchantSimasCard.this,R.layout.spinner_style, kategori);
spinnerMenu.setDropDownViewResource(R.layout.spinner_dropdown);
spin_all.setAdapter(spinnerMenu);
ArrayAdapter<String> SpinnerKota = new ArrayAdapter<String>(MerchantSimasCard.this, R.layout.spinner_style, kota);
SpinnerKota.setDropDownViewResource(R.layout.spinner_dropdown);
spin_kota.setAdapter(SpinnerKota);
ArrayAdapter<String> Spinnerabjad= new ArrayAdapter<String>(MerchantSimasCard.this,R.layout.spinner_style, abjad);
Spinnerabjad.setDropDownViewResource(R.layout.spinner_dropdown);
spin_abjad.setAdapter(Spinnerabjad);
dialog.dismiss();
}
}
private void ParsingCategory(String result) {
if (!result.equals("")) {
try {
JSONObject jsonObject = new JSONObject(result);
JSONArray cat = jsonObject.getJSONArray("cat");
for (int i=0; i<cat.length();i++){
JSONObject status = cat.getJSONObject(i);
String Category=status.getString("name");
kategori.add(Category);
}
JSONArray city=jsonObject.getJSONArray("cit");
for (int j=0; j<city.length();j++){
String kot = (String) city.get(j);
kota.add(kot);
}
}
catch (Exception e) {
Log.d("TEST CHART", e.getMessage());
}
}
}
imgSearch.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
//意向cari=新意向(MerchantSimasCard.this,Pencarian.class);
//星触觉(cari);
LayoutFlater充气器=(LayoutFlater)getBaseContext().getSystemService(布局充气器服务);
最终视图POPUPPRED=充气机充气(R.layout.cari,空);
spin_all=(微调器)popumper.findViewById(R.id.spin_kategori);
spin_kota=(微调器)popump.findViewById(R.id.spin_kota);
spin_abjad=(微调器)popumper.findviewbyd(R.id.spin_abjad);
search=(EditText)popump.findViewById(R.id.search);
buttonsearch=(Button)popUnder.findViewById(R.id.buttonsearch);
final PopupWindow pw=新的PopupWindow(popumper,LayoutParams.WRAP_内容,LayoutParams.WRAP_内容,true);
新喷丝头kategori().execute();
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(ListMerchant.size()>0){
ListMerchant.clear();
ListChildMerchantChild.clear();
}
字符串url1=null;
试一试{
url1=”http://www3.abc.co.id/";
}捕获(不支持的编码异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
解雇;
System.out.println(url1);
新建TerbaruAsyncTask(url1.execute();
}
});
pw.显示位置(findViewById(R.id.merchantsimascard),重心,0,0);
}
});
公共类SpinnerKategori任务{
字符串url=”http://www3.sinarmasmsiglife.co.id/E-Policy/ios/sc_merchant.htm?s=1";
公共喷丝器kategori(){
this.url=url;
}
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
dialog=ProgressDialog.show(MerchantSimasCard.this,“,”melakukan pengambillan data”);
}
@凌驾
受保护字符串doInBackground(无效…参数){
字符串结果=”;
试一试{
结果=Connection.get(url);
}捕获(例外e){
结果=”;
}
返回结果;
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
ParsingCategory(result.replace(“\n”和“).trim());
ArrayAdapter spinnerMenu=新的ArrayAdapter(MerchantSimasCard.this,R.layout.spinner_style,kategori);
spinnerMenu.setDropDownViewResource(R.layout.spinner\u下拉菜单);
spin_all.setAdapter(喷丝头菜单);
ArrayAdapter spinner kota=新的ArrayAdapter(MerchantSimasCard.this,R.layout.spinner_style,kota);
SpinnerKota.setDropDownViewResource(R.layout.spinner_下拉菜单);
spin_kota.setAdapter(喷丝器kota);
ArrayAdapter Spinnerabjad=新的ArrayAdapter(MerchantSimasCard.this,R.layout.spinner_style,abjad);
Spinnerabjad.setDropDownViewResource(R.layout.spinner\u下拉菜单);
spin_abjad.setAdapter(Spinnerabjad);
dialog.dismise();
}
}
私有void ParsingCategory(字符串结果){
如果(!result.equals(“”){
试一试{
JSONObject JSONObject=新JSONObject(结果);
JSONArray cat=jsonObject.getJSONArray(“cat”);
对于(int i=0;i您正在尝试在显示之前关闭PopupWindow
删除此行
pw.dismiss();
在“onCreate”上保存上下文,用mContext替换MerchantSimasCard.this或使用UI线程