gpt4 book ai didi

java - PlaceAutoCompleteFragment setHint NPE

转载 作者:太空宇宙 更新时间:2023-11-04 12:23:29 26 4
gpt4 key购买 nike

我在 setHint 方法上收到 NPE。Logcat 显示此错误:

void android.widget.EditText.setHint(java.lang.CharSequence)' on a null object reference.

这是我的代码:

AutocompleteFilter typeFilter = new AutocompleteFilter.Builder()
.setTypeFilter(AutocompleteFilter.TYPE_FILTER_NONE)
.build();
if (pickup_point == null) {
Fn.logD("BOOKNOW_FRAGMENT", "autocompleteFragment_null");
pickup_point = (PlaceAutocompleteFragment) PlaceAutocompleteFragment.instantiate(getActivity(), "com.google.android.gms.location.places.ui.PlaceAutocompleteFragment");
getActivity().getFragmentManager().beginTransaction().replace(R.id.pickup_container, pickup_point).commit();
Fn.logD("pickup_point_fragment",String.valueOf(pickup_point));
pickup_point.setFilter(typeFilter);
if ((southwest != null)) {
Fn.SystemPrintLn("******haha**my curn loc is : " + southwest.longitude + " " + southwest.latitude);
pickup_point.setBoundsBias(new LatLngBounds(southwest, northeast));
}
pickup_point.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
Fn.logD("BOOKNOW_FRAGMENT", "onPlaceSelected");
pickuppoint_name = (String) place.getName();
pickup_address = (String) place.getAddress();
pickup_latlng = place.getLatLng();
pickup_lat = pickup_latlng.latitude;
pickup_lng = pickup_latlng.longitude;
}

@Override
public void onError(Status status) {
Fn.logD("BOOKNOW_FRAGMENT", "onError");
// TODO: Handle the error.
Fn.logD("BOOKNOW_FRAGMENT", "An error occurred: " + status);
}
});
pickup_point.setHint("Pickup Point");
}
if (dropoff_point == null) {
Fn.logD("BOOKNOW_FRAGMENT", "autocompleteFragment_null");
dropoff_point = (PlaceAutocompleteFragment) PlaceAutocompleteFragment.instantiate(getActivity(), "com.google.android.gms.location.places.ui.PlaceAutocompleteFragment");
getActivity().getFragmentManager().beginTransaction().replace(R.id.dropoff_container, dropoff_point).commit();
//pickup_point.setHint("Pickup Point");
dropoff_point.setFilter(typeFilter);
if ((southwest != null)) {
dropoff_point.setBoundsBias(new LatLngBounds(southwest, northeast));
}
dropoff_point.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
Fn.logD("BOOKNOW_FRAGMENT", "onPlaceSelected");
dropoffpoint_name = (String) place.getName();
dropoff_address = (String) place.getAddress();
}

这是 xml 文件中的相关代码:

<LinearLayout
style="@style/horizontal_LL.sm.2">
<LinearLayout
style="@style/edittext_fragment"
android:id="@+id/pickup_container"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
<LinearLayout
style="@style/horizontal_LL.sm.2">
<LinearLayout
style="@style/edittext_fragment"
android:orientation="vertical"
android:id="@+id/dropoff_container">
</LinearLayout>
</LinearLayout>

我非常了解 NPE 以及如何解决它们,但我找不到解决方案。提前致谢。

这似乎是问题所在: https://code.google.com/p/android/issues/detail?id=23972

最佳答案

在调用 setHint() 方法之前,请在通过调用插入 PlaceAutocompleteFragment 后尝试执行挂起的事务:

getActivity().getFragmentManager().executePendingTransactions()

关于java - PlaceAutoCompleteFragment setHint NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38597346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com