我有一个带有底栏的main_activity。我正在使用这个底栏在片段之间导航。然而,有一个片段不能通过底部栏直接导航。它必须通过MapView和onInfowindowClick
从片段中访问。然而,每当我使用InfoWindow时,该应用程序就会崩溃。这是我的代码
public void onMapReady(GoogleMap googleMap) {
BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.tesla);
mMap=googleMap;
for (Location item : array_list) {
String _title = item.getLocation_name();
String _snippet = item.getLocation_address();
LatLng _latLng = new LatLng(item.getLatitude(), item.getLongitude());
final MarkerOptions mMarkerOptions = new MarkerOptions().icon(icon);
mMarkerOptions.position(_latLng).title(_title).snippet(_snippet).flat(true);
Marker marker = mMap.addMarker(mMarkerOptions);
mMarkerHashMap.put(marker, item);
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(marker.getPosition())
.zoom(12.0f)
.build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
LocationDetailFragment detailedlocation = new LocationDetailFragment();
detailedlocation.LOCATION = mMarkerHashMap.get(marker);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content, detailedlocation);
ft.addToBackStack(null);
ft.commit();
}
});
}
--------- beginning of crash 04-23 19:41:11.380 2573-2573/com.teslaqubitsins.fasih.teslahcm E/AndroidRuntime: FATAL
异常:main process:com.teslaqubitsins.fasih.teslahcm,pid:2573 java.lang.nullpointerexception:试图在com.teslaqubitsins.fasih.teslahcm.locationDetailfragment.oncreateView(locationDetailfragment.java:35)和Android.support.v4.app.fragment.performCreateView(fragment.java:2192)和Android.support.v4.app.fragment.moveToState(在Android.support.v4.app.fragmentManagerimpl.moveFragmentToExpectedState(FragmentManager.java:1528)在Android.support.v4.app.fragmentManagerimpl.moveToState(FragmentManager.java:1595)在Android.support.v4.app.backstackRecord.executeOps(BackstackRecord.java:758)在Android.support.v4.app.fragmentManagerimpl.executeOps(FragmentManager.java:2363)在执行(碎片)nager.java:2103)在Android.support.v4.app.fragmentManagerImpl.execPendingActions(FragentManager.java:2013),android.support.v4.app.fragmentManagerImpl$1.run(FragmentManager.java:710),android.support.v4.app.fragmentManagerImpl.run(fragmentManager.java:71),android.os.handler.handleCallback(handler.java:751)在Android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:886)at com.android.internal.os.zygoteinit.main(zygoteinit.java:776)04-23 19:41:11.383 156 4-1957/system_process W/activitymanager:强制完成活动com.teslaqubitsins.fasih.teslahcm/.mainactivity 04-23 19:41:11.414 129 6-1653/?E/surfaceflinger:ro.sf.lcd_density必须定义
[ 04-23 19:41:11.456 1564: 3367 D/ ]
HostConnection::get() New Host Connection established 0x87cb5680, tid 3367 04-23
19:41:11.457 129 6-1653/?d/gralloc_ranchu:gralloc_alloc:格式1和用法0x900意味着创建主机颜色缓冲区04-23 19:41:11.457 156 4-3367/system_process I/openglenderer:初始化EGL,版本1.4 04-23 19:41:11.458 156 4-3367/system_process D/openglenderer:交换行为1 04-23 19:41:11.458 156 4-3367/system_process W/openglenderer:选择带有EGL_SWAP_Behavior_President的配置失败,正在重试,没有...04-23 19:41:11.458 156 4-3367/System_Process D/OpenGlenderer:交换行为0.04-23 19:41:11.462 129 6-1653/?d/gralloc_ranchu:gralloc_alloc:格式1和用法0x900意味着创建主机颜色缓冲区04-23 19:41:11.476 129 6-1653/?d/gralloc_ranchu:gralloc_alloc:格式1和用法0x900意味着创建主机颜色缓冲区04-23 19:41:11.892 156 4-1591/system_process W/activitymanager:Activity pause timeout for ActivityRecord{34a233 u0 com.teslaqubitsins.fasih.teslahcm/.mainactivity t141 f}04-23 19:41:11.921 129 6-1962/?d/gralloc_ranchu:gralloc_alloc:格式1和用法0x900意味着创建主机颜色缓冲区04-23 19:41:11.940 129 6-1962/?d/gralloc_ranchu:gralloc_alloc:格式1和用法0x900意味着创建主机颜色缓冲区04-23 19:41:11.951 129 6-1962/?d/gralloc_ranchu:gralloc_alloc:格式1和用法0x900意味着创建主机颜色缓冲区04-23 19:41:11.968 129 6-1426/?d/permissioncache:检查Android.permission.read_frame_buffer for UID=1000=>grated(252 us)04-23 19:41:12.025 129 6-1426/?d/gralloc_ranchu:gralloc_alloc:格式1和用法0x333意味着创建主机颜色缓冲区块引号
package com.teslaqubitsins.fasih.teslahcm;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class LocationDetailFragment extends Fragment {
public static Location LOCATION;
TextView _campusName;
TextView _campusAddress;
public LocationDetailFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_location_detail, container, false);
_campusName = (TextView) getView().findViewById(R.id.campus_name);
_campusAddress = (TextView) getView().findViewById(R.id.campus_address);
_campusName.setText(LOCATION.getLocation_name());
_campusAddress.setText(LOCATION.getLocation_address());
return view;
}
public void onClick_call(View view) {
dialPhoneNumber(LOCATION.getLocation_phone());
}
public void dialPhoneNumber(String phoneNumber) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + phoneNumber));
if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
startActivity(intent);
}
}
}
04-23 19:58:11.735 685 6-6856/com.teslaqubitsins.fasih.teslahcm e/androidruntime:致命异常:main process:com.teslaqubitsins.fasih.teslahcm,pid:6856 java.lang.nullpointerexception:试图在com.teslaqitsins.fasih.teslahcm.locationdetailfragment.oncreateview(locationdetailfragment.java.app.fragment.performcreateview(2192)在Android.support.v4.app.fragmentManagerImpl.moveToState(fragmentManager.java:1299)在Android.support.v4.app.fragmentManagerImpl.moveFragmentToExpectedState(fragmentManager.java:1528)在Android.support.v4.app.fragmentManagerImpl.moveState(fragmentManager.java:1595)在Android.support.v4.app.fragmentManagerImpl.moveToState(ExecuteOpstoGether(FragmentManager.java:2149)在Android.support.v4.app.fragmentManagerImpl.OptimizeandExecuteOps(FragentManager.java:2103),在Android.support.v4.app.fragmentManagerImpl.execPendingActions(FragentManager.java:2013),在Android.support.v4.app.fragmentManagerImpl$1.run(FragmentManager.java:710),在.main(activitythread.java:6119)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:886)在com.android.internal.os.zygoteinit.main(zygoteinit.java:776)04-23 19:58:12.507 2006-2282/com.google.android.googleQuicksearchbox:search W/GMSLocationProvider:删除位置更新时出错:16
而不是:
_campusName = (TextView) getView().findViewById(R.id.campus_name);
_campusAddress = (TextView) getView().findViewById(R.id.campus_address);
使用片段的膨胀视图获取ID:
_campusName = (TextView) view.findViewById(R.id.campus_name);
_campusAddress = (TextView) view.findViewById(R.id.campus_address);
当您的getview()
返回null时会发生异常,它与片段的视图
没有关联。在片段
中,必须始终使用膨胀视图的引用。
这是我第一次尝试开发android应用程序。 我有一个带有ConstraintLayout的MainActivity,它具有BottomNavigationView。每当选择第一个导航项时,我想显示一个类别列表(显示在片段中),然后每当选择此类别时,将显示与该特定类别相关的另一个列表(显示在另一个片段中)。 我读到(Android-fragment.replace()不替换内容-将其放在顶部)它指
我有一个带有导航抽屉的应用程序,它为每个菜单项使用片段。 每次单击一个项目时,我都会替换当前片段。 问题是,在用户单击后显示新片段需要很长时间,并且它会被卡住。加载时间最长的片段是一个片段,其中还包含子片段的选项卡(一个片段包含一个RecyclerView)<有什么方法可以加快碎片的装载速度吗?(如果可能的话,可能会提前初始化它们?) 这是我的代码: HalachaFragment。cs(包含选项
问题内容: 我想拥有自己的内心 这是我的xml文件 我的档案 和我的Fragment类 启动应用程序时,我的片段中看不到任何地图视图 问题答案: 来自Josh Holtz在GitHub上的示例: 您应该添加在你喜欢 并实现你的喜欢
当使用底部导航视图在片段之间切换时,每次按下按钮时都会重新创建片段。 这是我的代码:
编辑:我的滑动标签碎片ATabs似乎有问题。没有使用ATabs片段,只需使用导航抽屉在片段A1和B之间切换,一切都很好!可以添加列表项。编辑的主要活动: 但当我使用ATabs片段(见下面的MainActivity)并切换到它并返回时,就不可能再添加ListItems了。尽管Logcat显示日志。v(LOG_标签,“添加项”) 每次按add()。 我不知道是什么导致了这个问题。如果ATabs需要是一
我正在开发一个android应用程序,它使用导航抽屉在两个片段之间切换。然而,每次我切换时,片段都会被完全重新创建。 这是我主要活动的代码。 我设置了一些调试日志记录,每次调用selectItem时,都会销毁一个片段,而创建另一个片段。 有什么方法可以防止碎片被重新创建,而只是重复使用它们吗?