Android 第一次单击时放置自动完成碎片仅获取焦点
使用带有自定义布局的Android 第一次单击时放置自动完成碎片仅获取焦点,android,api,firebase,placeautocompletefragment,Android,Api,Firebase,Placeautocompletefragment,使用带有自定义布局的PlaceAutocompleteFragment时遇到问题。 当我第一次点击它时,它只是获得焦点,另一次点击它弹出窗口。 我在fragment类中使用了它。 这里是上传视频的链接。 我在自定义布局上使用了EditText。 MainFragment.class PlaceAutocompleteFragment placeAutocompleteFragment = (PlaceAutocompleteFragment) getActivity().getFragment
PlaceAutocompleteFragment
时遇到问题。
当我第一次点击它时,它只是获得焦点,另一次点击它弹出窗口。
我在fragment类中使用了它。
这里是上传视频的链接。
我在自定义布局上使用了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);
}
}
设置城市编辑文本的输入类型
editText1= (EditText) super.getActivity().findViewById(R.id.editText1);
editText1.setInputType(InputType.TYPE_NULL);
它不起作用,我试着给我看空白的活动,问题是我在片段中使用了它。