Android:findviewbyid:当view不在setContentView调用的同一个布局上时,通过id查找view

我有一个从MapActivity扩展的活动MyActivity。 在包含布局的.xml文件中,我只能包含MapView

<com.google.android.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/trail_map_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:apiKey="key" /> 

但是我需要find另一个位于另一个.xml文件中的视图。 不幸的是,findViewById返回null。 我怎样才能得到我正在寻找的视图?

非常感谢!

感谢评论,我明白你的意思,但我不想检查旧值。 我只想得到一个指向这个观点的指针。

看看somebody的代码我刚刚发现了一个解决方法,你可以使用LayoutInflater访问布局的根目录。

代码如下,其中this是一个活动:

 final LayoutInflater factory = getLayoutInflater(); final View textEntryView = factory.inflate(R.layout.landmark_new_dialog, null); landmarkEditNameView = (EditText) textEntryView.findViewById(R.id.landmark_name_dialog_edit); 

基本上得到this上下文的inflater,通过膨胀方法访问根视图,最后在布局的根视图上调用findViewById

希望对某人有用! 再见

我改变了我的活动,但影响。 这是我的代码:

 View layout = getLayoutInflater().inflate(R.layout.list_group,null); try { LinearLayout linearLayout = (LinearLayout) layout.findViewById(R.id.ldrawernav); linearLayout.setBackgroundColor(Color.parseColor("#ffffff")); } catch (Exception e) { } } 

不可能。 您只能find并访问当前正在运行的视图。 如果你想检查ex的值。 在previus活动中使用的TextView必须保存值为SharedPreferences,数据库,文件或通过Intent传递。

尝试:

 Activity parentActivity = this.getParent(); if (parentActivity != null) { View landmarkEditNameView = (EditText) parentActivity.findViewById(R.id. landmark_name_dialog_edit); }