2015-07-21 3 views
0

Мое приложение должно иметь возможность отображать диалоговое окно или активность для ввода текста от пользователя. С OK и CANCEL кнопкулучший способ ввода текста до 2000 символов андроид applicaiton

Я попробовал 2 способа диалоговые 1. оповещения с пользовательскими раскладка т.е. EditText, ОК и кнопку отменить Но как только пользователь нажимает ОК, OnClick() событие принимает только конечную строку. Диалоговое окно предупреждения вызывается из основного действия, но код, написанный в классе Utils, говорит Utils.showDialog().

Как только диалоговое окно получит данные, мне нужно передать строку редактирования текста в MainActivity, откуда вызывается утилита .showdialog().

Другой способ 2. От MainActivity началось новое действие с редактированием текста, ok и отмена макета. как только пользователь нажимает ok, в действии я получаю строку и обрабатываю ее. Макет - это текст редактирования ниже кнопки ОК и ОТМЕНА.

Одна из проблем заключается в том, что я ограничиваю число символов до 2000, и когда я продолжаю вводить текст больше, чем экран мобильного телефона (скажем, 5 дюймов), кнопка «ОК» отменяется и не может получить доступ к кнопке «ОК» и «ОТМЕНА».

Если мне нужно использовать 2-й метод, я должен уладить кнопку «ОК» и «ОТМЕНА» внизу, а текст выше должен быть способен перемещаться вверх и вниз.

Как я могу достичь этого и какой из них подходит?

+0

Можно просто программно исправить размер диалога:. alertDialog.getWindow() setLayout (600, 400); // Управление шириной и высотой. – Ahmed

ответ

1

макет должен быть чем-то вроде этого для 2-го метода

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <EditText 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:maxLength="2000" /> 
    </ScrollView> 

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

     <Button 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="OK" /> 

     <Button 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Cancel" /> 

    </LinearLayout> 

</RelativeLayout> 
+0

Я пробовал этот макет, но когда данные попадают за пределы экрана, кнопки «ОК» и «Отмена» спускаются и не видны. Я хочу, чтобы обе кнопки были видны внизу. Текстовый вид редактирования должен иметь возможность прокрутки. С помощью надстрочного текста текст прокручивается, но кнопки остаются видимыми после ввода нескольких строк. –

+0

@Sudarshansridhar Добавьте в свой 'LinearLayout' атрибут' android: id', назовите его как 'linearLayoutId', затем добавьте следующую строку в' ScrollView' - 'android: layout_above =" @ + id/linearLayoutId "' – PPartisan

Смежные вопросы