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)
我已經這樣做了,但我仍然得到相同的錯誤 –
它是w如果你刪除alertdialog,請問是否? – Vadivel
請加@Override public void onDestroy(){ super.onDestroy(); mGoogleClient.stopAutoManage(getActivity()); mGoogleClient.disconnect(); } – Vadivel