2016-11-17 53 views
0

我使用google的自動位置來獲取我在警告對話框中給出的位置,當我第一次打開對話框時,一切正常,但是當我關閉對話框,並再次打開對話框,它顯示了一個錯誤,說明已經管理一個ID爲0的GoogleApiClient 0即使我已經嘗試更改enableautomanage並添加了onstart和onpause方法,但沒有任何作用。在alertdialog中使用id爲0的google api客戶端時出現錯誤

任何人都可以告訴我爲什麼會發生這種情況,在alertdialog框中使用它時如何解決這個錯誤。

代碼:

final LayoutInflater layoutInflater = LayoutInflater.from(Activity_AddFastEntryDaybook.this); 
    final View promptView = layoutInflater.inflate(R.layout.dialog_add_newfarmer, null); 
    final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Activity_AddFastEntryDaybook.this); 
    alertDialogBuilder.setView(promptView); 
    alertDialogBuilder.setCancelable(true); 
    mlayout = promptView.findViewById(R.id.relative_view_layout); 
    final TextInputLayout ti_farmername = (TextInputLayout) promptView.findViewById(R.id.inputfarname); 
    final TextInputLayout ti_farmermobno = (TextInputLayout) promptView.findViewById(R.id.inputfarmobno); 
    final TextInputLayout ti_farmerlocation = (TextInputLayout) promptView.findViewById(R.id.inputfarmlocation); 
    edt_farmername = (EditText) promptView.findViewById(R.id.farmername); 
    edt_farmermobno = (EditText) promptView.findViewById(R.id.farmermobileno); 
    final ImageView importcontacts = (ImageView) promptView.findViewById(R.id.img_importcontacts); 
    final ImageView btnsave = (ImageView) promptView.findViewById(R.id.img_save); 
    final AutoCompleteTextView actv_farmerlocation = (AutoCompleteTextView) promptView.findViewById(R.id.farmerlocation); 
    // checkconnection(); 
    mGoogleApiClient = new GoogleApiClient.Builder(Activity_AddFastEntryDaybook.this) 
      .addApi(Places.GEO_DATA_API) 
      .enableAutoManage(this, GOOGLE_API_CLIENT_ID, this) 
      .addConnectionCallbacks(this) 
      .build(); 
    actv_farmerlocation.setThreshold(1); 
    actv_farmerlocation.setOnItemClickListener(mAutocompleteClickListener); 
    mPlaceArrayAdapter = new PlaceArrayAdapter(this, android.R.layout.simple_list_item_1, 
      BOUNDS_MOUNTAIN_VIEW, null); 
    actv_farmerlocation.setDropDownWidth(-1); 
    actv_farmerlocation.setAdapter(mPlaceArrayAdapter); 

    importcontacts.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      farmercontacts(); 
     } 
    }); 
    btnsave.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      String farmer_name = edt_farmername.getText().toString(); 
      String farmer_mobno = edt_farmermobno.getText().toString(); 
      String farmer_location = actv_farmerlocation.getText().toString(); 
      if (farmer_name.length() == 0) { 
       edt_farmername.setError("Enter Name"); 
      } else if (farmer_mobno.length() == 0) { 
       edt_farmermobno.setError("MobileNo"); 
      } else if ((farmer_mobno.length() > 10) && (farmer_mobno.startsWith("6") || farmer_mobno.startsWith("5") || farmer_mobno.startsWith("4") || farmer_mobno.startsWith("3") 
        || farmer_mobno.startsWith("2") || farmer_mobno.startsWith("1") || farmer_mobno.startsWith("0") || farmer_mobno.startsWith("*") || farmer_mobno.startsWith("#") || farmer_mobno.endsWith("*") || farmer_mobno.endsWith("#"))) { 
       edt_farmermobno.setError("enter a valid mobile no"); 
      } else if ((farmer_mobno.length() == 10) && (farmer_mobno.startsWith("6") || farmer_mobno.startsWith("5") || farmer_mobno.startsWith("4") || farmer_mobno.startsWith("3") || farmer_mobno.startsWith("2") || farmer_mobno.startsWith("1") || farmer_mobno.startsWith("0") || farmer_mobno.startsWith("*") || farmer_mobno.startsWith("#") || farmer_mobno.endsWith("*") || farmer_mobno.endsWith("#"))) { 
       edt_farmermobno.setError("Invalid mobile no"); 
      } else if ((farmer_mobno.length() < 10) && farmer_mobno.startsWith("6") || farmer_mobno.startsWith("5") || farmer_mobno.startsWith("4") || farmer_mobno.startsWith("3") 
        || farmer_mobno.startsWith("2") || farmer_mobno.startsWith("1") || farmer_mobno.startsWith("0") || farmer_mobno.startsWith("*") || farmer_mobno.startsWith("#") || farmer_mobno.endsWith("*") || farmer_mobno.endsWith("#")) { 
       edt_farmermobno.setError("enter a valid mobile no"); 

      } else if (farmer_location.length() == 0) { 
       actv_farmerlocation.setError("Location"); 
      } else { 
       edt_farmername.setError(null); 
       edt_farmermobno.setError(null); 
       actv_farmerlocation.setError(null); 
       databasehandler.insertFarmer(farmer_name, farmer_mobno, farmer_location); 
       alert.dismiss(); 
       myAdapterfarmer.notifyDataSetChanged(); 
      } 
     } 
    }); 
    alert = alertDialogBuilder.create(); 
    alert.show(); 

錯誤:

java.lang.IllegalStateException: Already managing a GoogleApiClient with id 0 
                    at com.google.android.gms.common.internal.zzab.zza(Unknown Source) 
                    at com.google.android.gms.internal.zzpk.zza(Unknown Source) 
                    at com.google.android.gms.common.api.GoogleApiClient$Builder.zzf(Unknown Source) 
                    at com.google.android.gms.common.api.GoogleApiClient$Builder.build(Unknown Source) 
                    at codingtown.coconut.daybook.activity.Activity_AddFastEntryDaybook.addnewfarmer(Activity_AddFastEntryDaybook.java:325) 
                    at codingtown.coconut.daybook.activity.Activity_AddFastEntryDaybook.access$000(Activity_AddFastEntryDaybook.java:74) 
                    at codingtown.coconut.daybook.activity.Activity_AddFastEntryDaybook$5.onClick(Activity_AddFastEntryDaybook.java:265) 

回答

0

問題不是從alertdialog,您可以通過添加代碼

`mGoogleApiClient .enableAutoManage(此,0/*的clientId試試這個* /,這)

+0

我已經這樣做了,但我仍然得到相同的錯誤 –

+0

它是w如果你刪除alertdialog,請問是否? – Vadivel

+0

請加@Override public void onDestroy(){ super.onDestroy(); mGoogleClient.stopAutoManage(getActivity()); mGoogleClient.disconnect(); } – Vadivel

相關問題