为Android构建原生扩展,我正在尝试集成google mapview,当我尝试从布局中访问属性时,它可以很好地运行。错误出现在扩展mapview的activity-class中:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_map);
mapView = (MapView)findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true); // <- this crashes, same for textview etc.
加载的xml如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textfield1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="0dp"
android:text="@string/hello_world"
android:textColor="#ff0000" />
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="300dp"
android:layout_height="300dp"
android:clickable="true"
android:apiKey="0cy94dNyuBcfF0aNZhB_JKpF4dQtxgDWhCXppRw" />
<Button
android:id="@+id/button_clear"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_width="100dp"
android:layout_height="40dp"
android:background="@android:color/black"
android:text="@string/clear"
android:textColor="@android:color/white" />
<Button
android:id="@+id/button_add"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_width="100dp"
android:layout_height="40dp"
android:background="@android:color/black"
android:text="@string/add"
android:textColor="@android:color/white" />
到目前为止我找到并检查了什么:
我已经阅读了一些关于使用getRessourceId的帖子,但这意味着需要将FREContext注入到活动中,这听起来很奇怪。
任何提示真的很感激! Thanx,M。
答案 0 :(得分:1)
想出第一部分。实际上,您在活动中有一个静态FREContext。在您的扩展功能中,使用一个设置此上下文,您将获得:
@Override
public FREObject call(FREContext context, FREObject[] args) {
MyActivity.freContext = context;
在您的活动中,您可以通过它的resourceId:
设置布局 setContentView( freContext.getResourceId("layout.my_layout_xml"));
希望这有助于某人。