Как сделать мой макет правильным для ввода координат в EditTexts для карт

Мне нужно ввести широту и долготу отдельно за 2 EditTexts и отобразить местоположение по щелчку button. Почему-то я не могу получить правильный макет, так как мне точно нужно 2 EditText, выровненных рядом, и button под ними.

Вот что у меня уже есть:

    <LinearLayout android:id="@+id/zoom" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:layout_centerHorizontal="true" />

    <EditText  
        android:layout_width="wrap_content" 
        android:text="@+id/EditText01"      
        android:layout_height="wrap_content" 
        android:id="@+id/edLat" 
        android:layout_toRightOf="@+id/mapView">
    </EditText>
    <EditText 
        android:layout_marginLeft="-237dip"  
        android:layout_marginTop="100dip" 
        android:layout_width="wrap_content" 
        android:text="@+id/EditText01" 
        android:layout_height="wrap_content" 
        android:id="@+id/edLong" 
        android:layout_toRightOf="@+id/mapView">
    </EditText>
    <Button 
        android:layout_marginLeft="-237dip"            
        android:layout_marginTop="200dip" 
        android:layout_width="wrap_content" 
        android:text="Show Location" 
        android:layout_height="wrap_content" 
        android:id="@+id/btnShowLoc"  
        android:layout_toRightOf="@+id/mapView"></Button>

    <com.google.android.maps.MapView 

        android:id="@+id/mapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="0p8EoZESYekrClENQbOlN5EN16DgXv7Rx0CPTMg" />

</LinearLayout>

person Muhammad Maqsoodur Rehman    schedule 28.10.2010    source источник
comment
MapView должен быть под кнопкой?   -  person Flo    schedule 28.10.2010


Ответы (2)


Приведенный ниже код соответствует вашим требованиям:

<LinearLayout android:id="@+id/zoom" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:layout_centerHorizontal="true" 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical">

    <LinearLayout android:id="@+id/LinearLayout01" 
                  android:layout_width="wrap_content" 
                  android:layout_height="wrap_content"
                  android:orientation="horizontal">

          <EditText 
            android:layout_width="wrap_content"     
            android:layout_height="wrap_content"    
            android:id="@+id/edLat">
          </EditText>

          <EditText     
            android:layout_width="wrap_content"     
            android:layout_height="wrap_content"    
            android:id="@+id/edLong">
           </EditText>
    </LinearLayout>

    <Button 
        android:layout_width="wrap_content" 
        android:text="Show Location" 
        android:layout_height="wrap_content" 
        android:id="@+id/btnShowLoc">
    </Button>

    <com.google.android.maps.MapView 

        android:id="@+id/mapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="0p8EoZESYekrClENQbOlN5EN16DgXv7Rx0CPTMg"
        />
</LinearLayout>

Примечание:

вы написали код ниже:

 <EditText android:layout_marginLeft="-237dip" android:layout_marginTop="100dip" android:layout_width="wrap_content" android:text="@+id/EditText01" android:layout_height="wrap_content" android:id="@+id/edLong" android:layout_toRightOf="@+id/mapView"></EditText>

Я хотел бы сказать вам, что не давайте такой позиции какому-либо элементу управления, потому что в Android существуют разные типы разрешений, поэтому он не будет выглядеть одинаково на каждом устройстве Android.

Увидев ваш код, я могу сказать, что вы должны сначала изучить макеты и методы кода. Обратитесь к страницам Android-sdk.

Обновленный ответ с изображениями: ‹29 октября 2010 г.>


Я думаю, вы забыли добавить разрешение <uses-library android:name="com.google.android.maps" /> в файл AndroidManifest.xml, добавьте это разрешение в тег <application>.

Посмотрите на изображение ниже, тот же код выше работает для меня:

альтернативный текст

person Paresh Mayani    schedule 28.10.2010
comment
Спасибо за совет! Не удалось выполнить ваш код. Произошла фатальная ошибка: 10-29 11:39:27.381: ERROR/AndroidRuntime(304): java.lang.RuntimeException: невозможно запустить активность ComponentInfo{com.apps.samplelayout/com.apps. samplelayout.SampleLayout}: android.view.InflateException: строка двоичного XML-файла № 34: ошибка при раздувании класса com.google.android.maps.MapView - person Muhammad Maqsoodur Rehman; 29.10.2010
comment
Я придумал свой собственный код, который отлично работает и соответствует моим требованиям. Смотрите, как я отвечаю, и, пожалуйста, будьте критичны снова. Спасибо за совет. - person Muhammad Maqsoodur Rehman; 29.10.2010
comment
@Maxood, привет, maxood, у меня он работает нормально, посмотри прикрепленное изображение, а также я думаю, что ты мог забыть добавить разрешение на использование службы в файле AndroidManifest.xml. - person Paresh Mayani; 29.10.2010
comment
@Maxood и вы добавляете fill_parent вместо wrap_content внутри первого LinearLayout, чтобы он соответствовал экрану. - person Paresh Mayani; 29.10.2010
comment
@Paresh Mayani Да, теперь все работает нормально. Спасибо. Вы читали мой следующий вопрос в RSS-каналах? - person Muhammad Maqsoodur Rehman; 03.11.2010
comment
@Maxood рад вашему ответу, нет, я не читал ваш следующий вопрос, дайте мне ссылку - person Paresh Mayani; 03.11.2010
comment
@Paresh Mayani Вот ссылка: stackoverflow. ком/вопросы/4050766/ - person Muhammad Maqsoodur Rehman; 04.11.2010

Я попытался использовать табличный макет здесь и отлично работает для моей цели. Я был бы признателен, если бы кто-нибудь мог придумать лучший макет и дать мне ценное предложение. Спасибо

        <EditText 
            android:id="@+id/edLat" 
            android:width="200px" />
    </TableRow> 
    <TableRow>

        <EditText 
            android:id="@+id/edLong" 

            />
    </TableRow>

    <TableRow>
     <Button
        android:id="@+id/btnShowLoc"
        android:layout_width="125px"
        android:layout_height="wrap_content"
        android:text="Show Location"
        android:layout_below="@+id/txtComments"
        android:layout_alignBottom="@+id/mapView"
        />
        </TableRow>

    <TableRow>
         <com.google.android.maps.MapView 

        android:id="@+id/mapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="0p8EoZESYekrClENQbOlN5EN16DgXv7Rx0CPTMg"

        />  
    </TableRow>
     <LinearLayout android:id="@+id/zoom" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:layout_centerHorizontal="true" 
        /> 

</TableLayout>
person Muhammad Maqsoodur Rehman    schedule 29.10.2010