2013-11-01 38 views
0

我有我的活動彈出窗口,我的彈出是工作的罰款,直到我上微調點擊它給了我一個錯誤的logcat說:

11-01 15:28:31.131: E/AndroidRuntime(10846): android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] 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()); 
      } 
     } 

} 

我不知道找到我的錯誤,我希望有人能幫助我解決我的問題。謝謝

回答

0

您試圖顯示它之前關閉該PopupWindow ..

刪除此行

pw.dismiss(); 
0

節省「的onCreate」的背景下,與mContext更換MerchantSimasCard.this或使用UI線程。

相關問題