在Activity中加载其他布局控件的一个方法

问题背景:在高徳SDK开发过程中自定义marker,使用

markerOption.icon ( BitmapDescriptorFactory.fromView (view2 ) );

的方式将布局转换成view并通过BitmapDescriptorFactory.fromView将其设置为marker的icon。

在此过程中,在主Activity中修改布局文件的TextView时报错空指针异常与runtimeException,分析发现原因是未加载布局文件,故在对其他布局文件进行setText()时异常。通过一下代码加载布局文件:

        View view2=View.inflate ( this,R.layout.carmarker,null );
        TextView textView =(TextView) view2.findViewById ( R.id.marker_id );
        textView.setText ( "GL88888"  );

加载后发现,第二个marker中icon中TextView的值并未改变,感觉应该是布局加载优先级的原因导致更改后的TextView不会被转换为View对象。故在每个marker的icon创建时都调用新的view来创建。解决问题。

        view2=View.inflate ( this,R.layout.carmarker,null );
        TextView textView =(TextView) view2.findViewById ( R.id.marker_id );
        textView.setText ( "GL88888"  );
        Log.d ( TAG, "onCreate: "+textView.getText () );

        LatLng latLng2 = new LatLng ( 23.068577,114.413689 );
        LayoutInflater inflater2 = LayoutInflater.from( this );
        MarkerOptions markerOptions2 = mk.get_MarkerOption (inflater2,latLng2,view2);

 

你可能感兴趣的:(在Activity中加载其他布局控件的一个方法)