簡體   English   中英

第一次單擊時自動放置PlaceAutocompleteFragment

[英]PlaceAutocompleteFragment on click first time getting only focus

使用自定義布局的PlaceAutocompleteFragment時遇到麻煩。 第一次單擊時,它只是獲得焦點,而第二次單擊時,它會彈出。 我在片段類里面使用過。 這是上傳視頻的鏈接。 我在自定義布局上使用了EditText 這是演示視頻

MainFragment.class

PlaceAutocompleteFragment placeAutocompleteFragment = (PlaceAutocompleteFragment) getActivity().getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
AutocompleteFilter typeFilter = new AutocompleteFilter.Builder()
//.setTypeFilter(AutocompleteFilter.TYPE_FILTER_CITIES)
.setTypeFilter(AutocompleteFilter.TYPE_FILTER_REGIONS)
.build();

placeAutocompleteFragment.setFilter(typeFilter);
placeAutocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
//places.setText(""+place.getAddress());
Log.d("Filtered",""+place.getId());
Log.d("Filtered",""+place.getAddress());
Log.d("Filtered",""+place.getLocale());
Log.d("Filtered",""+place.getPlaceTypes());
}

@Override
public void onError(Status status) {
}
});

CustomPlaceAutoCompleteFragment.class

public class CustomPlaceAutoCompleteFragment extends PlaceAutocompleteFragment {

private EditText editSearch;

private View zzaRh;
private View zzaRi;
private EditText zzaRj;
@Nullable
private LatLngBounds zzaRk;
@Nullable
private AutocompleteFilter zzaRl;
@Nullable
private PlaceSelectionListener zzaRm;

public CustomPlaceAutoCompleteFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View var4 = inflater.inflate(R.layout.custom_place_auto_complete_fragment, container, false);

editSearch = (EditText) var4.findViewById(R.id.editWorkLocation);
editSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
zzzG();
}
});

return var4;
}


public void onDestroyView() {
this.zzaRh = null;
this.zzaRi = null;
this.editSearch = null;
super.onDestroyView();
}

public void setBoundsBias(@Nullable LatLngBounds bounds) {
this.zzaRk = bounds;
}

public void setFilter(@Nullable AutocompleteFilter filter) {
this.zzaRl = filter;
}

public void setText(CharSequence text) {
this.editSearch.setText(text);
//this.zzzF();
}

public void setHint(CharSequence hint) {
this.editSearch.setHint(hint);
this.zzaRh.setContentDescription(hint);
}

public void setOnPlaceSelectedListener(PlaceSelectionListener listener) {
this.zzaRm = listener;
}

private void zzzF() {
boolean var1 = !this.editSearch.getText().toString().isEmpty();
//this.zzaRi.setVisibility(var1?0:8);
}

private void zzzG() {
int var1 = -1;

try {
Intent var2 = (new PlaceAutocomplete.IntentBuilder(2)).setBoundsBias(this.zzaRk).setFilter(this.zzaRl).zzh(this.editSearch.getText().toString()).zzg(1).build(this.getActivity());
this.startActivityForResult(var2, 1);
} catch (GooglePlayServicesRepairableException var3) {
var1 = var3.getConnectionStatusCode();
Log.e("Places", "Could not open autocomplete activity", var3);
} catch (GooglePlayServicesNotAvailableException var4) {
var1 = var4.errorCode;
Log.e("Places", "Could not open autocomplete activity", var4);
}

if (var1 != -1) {
GoogleApiAvailability var5 = GoogleApiAvailability.getInstance();
var5.showErrorDialogFragment(this.getActivity(), var1, 2);
}

}

public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == -1) {
Place var4 = PlaceAutocomplete.getPlace(this.getActivity(), data);
if (this.zzaRm != null) {
this.zzaRm.onPlaceSelected(var4);
}

this.setText(var4.getName().toString());
} else if (resultCode == 2) {
Status var5 = PlaceAutocomplete.getStatus(this.getActivity(), data);
if (this.zzaRm != null) {
this.zzaRm.onError(var5);
}
}
}

super.onActivityResult(requestCode, resultCode, data);
}

}

設置城市的輸入類型EditText

editText1= (EditText) super.getActivity().findViewById(R.id.editText1);
editText1.setInputType(InputType.TYPE_NULL); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM