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

来源:互联网 发布:2016手游大数据报告 编辑:程序博客网 时间:2024/05/02 02:34

根据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));    }
0 0
原创粉丝点击