Android在Fragment中的子View(如Button等)点击事件失效解决方法

释放双眼,带上耳机,听听看~!

根据fragment生命周期的执行过程,初始化ID(findViewById)和控件点击事件,一定要放在fragment中的onActivityCreated方法中,在onCreateView中,只是进行根节点 rootView的初始化。

1.init()方法和handleData()方法放在 onActivityCreated中,而不是放在onCreateView。

解决方案如下:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_tabone, container,false);
Log.d("TestFragment","fragment111--onCreateView");
return rootView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initView();
handData();
}
/**
* 初始化Id
*/
public void initView(){
//获取地图控件引用  
mMapView = (MapView) rootView.findViewById(R.id.bmapView);
mMapView.showZoomControls(false);//缩放按钮去掉
mMapView.showScaleControl(true);//比例尺显示
mBaiDuMap=mMapView.getMap();
//普通地图  
mBaiDuMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
//设置缩放级别
mBaiDuMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(new MapStatus.Builder().zoom(mMapScale).build()));
bt1=(Button) rootView.findViewById(R.id.bt1);
bt1.setOnClickListener(this);
}
/**
* 事件
*/
public void handData(){
initLocationParams();//初始化定位参数
m_locclient.start();//定位开始            
m_lmCurrentMode = LocationMode.NORMAL;
mBaiDuMap.setMyLocationConfigeration(new MyLocationConfiguration(m_lmCurrentMode, true, null));
}

人已赞赏
Android文章

百度地图关于No implementation found for long com.baidu.platform.comjni.ma...出现的问题

2020-4-12 6:17:18

Android文章

Android使用arcgis for Android 在eclipse开发环境下需要用到的jar包

2020-4-12 7:31:50

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索