首页 > 解决方案 > 我如何从 Android 的其他布局中获取 EditText 的 id?

问题描述

我现在正在使用 android studio 的谷歌地图并面临我无法理解的问题。我有 2 个布局,如下所示:

mani_activity.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="vertical">

   <LinearLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal">

          <EditText
              android:id="@+id/editTextSearch"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_weight="9"
              android:backgroundTint="@color/Gray"
              android:gravity="start"
              android:hint="@string/search_hint"
              android:imeOptions="actionSearch"
              android:inputType="text"
              android:maxLines="1" />

    <ImageButton
        android:id="@+id/imageButtonSearch"
        android:layout_width="48dp"
        android:layout_height="wrap_content"
        app:srcCompat="@mipmap/search" />

</LinearLayout>

和 map_fragment_layout:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
<fragment
    android:id="@+id/framentGoogleMap"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</fragment>

<ImageView
    android:id="@+id/ic_gps"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_marginRight="10dp"
    android:layout_marginBottom="10dp"
    android:background="@drawable/img"
    android:src="@drawable/ic_gps"
    android:visibility="visible" />


</RelativeLayout>

我的应用是这样的:

在此处输入图像描述

在编辑文本属于 main_activity.xml 布局?那么是否有可能在 Fragment 中访问 MainActivity 以获取 EditText 框的 id ?

标签: androidgoogle-maps

解决方案


是的,您可以使用

View view = getActivity().findViewById(R.id.editTextSearch)

这为您提供了视图,然后您可以将其转换为您需要的任何视图

if(view instanceof EditText) {
   editTextSearch = (EditText) view;
   //TODO do something with this
}

开发人员文档:与活动通信


推荐阅读