2013-04-18 4 views
0

Это, скорее всего, очень простая вещь, поэтому я извиняюсь, если это так, но я не могу ее реализовать.Сопоставьте ввод пользователя со строкой

Я пытаюсь проверить, что пользователь вводит в поле editText и сравнивать его с жестко закодированной строкой.

Вот строка, что я хочу, чтобы сравнить против -

OverlayItem overlayitem = new OverlayItem(point,"House Information", 
"4 Bed w/ large garden\n2 minute walk from Town Centre\nSchools 5 minute walk\n€300,000"); 

Вот мой EditText поле -

<!-- Number of rooms text field --> 
<EditText 
    android:id="@+id/numberRooms" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:hint="No. of rooms" 
    android:imeActionLabel="launch" 
    android:inputType="number" /> 

Я хочу, чтобы иметь возможность проверить, какие типы пользователей против «4 "в строке. Вот то, что я пытался до сих пор -

EditText numberOfRooms = (EditText) findViewById(R.id.numberRooms); 
if(overlayitem.equals(numberOfRooms.getText().toString())) 
{ 
    itemizedoverlay.addOverlay(overlayitem); 
} 

Так что в основном я не хочу, чтобы сравнить всю строку, я просто хочу, чтобы сравнить то, что пользователь вводит на первый символ в строке, которая в данном случае всегда будет числом.

+0

Используйте подстроку, чтобы получить подстроку закодированной строки длину вы хотите, а затем использовать StartsWith, чтобы увидеть, если другая строка начинается с этой строки –

+0

@GabeSechan Спасибо за ответ. Я не уверен, как сделать то, что вы предложили, поскольку у меня есть две строки в моем наложении, часть «Информация о доме», а затем часть «4 кровати с ...», но я хочу только проверить вторая часть струны. Я не хочу, если бы я упомянул, но есть несколько строк для проверки, overlayitem1, overlayitem2 и т. Д., Но я думаю, что если я смогу получить одну работу, я тоже смогу получить остальное. – funky

ответ

0

overlayitem не является строкой. Вы можете сравнить overlayitem.getTitle() или overlayitem.getSnippet() вместо:

overlayitem.getTitle().equals(numberOfRooms.getText().toString()) 
+0

Не нужно ли что-то использовать в строках 'EditText numberOfRooms = (EditText) findViewById (R.id.numberRooms);' хотя взять то, что вводит пользователь? – funky

+0

Да, то, что вы сделали в этом аспекте, прекрасно. (EditText) findViewById (R.id.numberRooms) .getText(). ToString(). – tbkn23

+0

Извините, я не понимаю, как правильно его реализовать в инструкции IF. Когда я пытаюсь сделать - 'EditText numberOfRooms = (EditText) findViewById (R.id.numberRooms) .getText(). ToString();' Я получаю ошибку в методе высказывания .getText(), getText не определен для вида типа , Не могли бы вы объяснить мне, как это реализовано правильно? – funky

1

Try:

String rooms = overlayitem.getSnippet().substring(0,2); 
     rooms = rooms.trim(); 
    if(rooms.equals(numberOfRooms.getText().toString())) 
    { 
     //Do whatever you want 
    } 
+0

Нет, это не сработает, приложение рушится, когда я вхожу 4. Я определил только внутри своего публичного класса свою кнопку так: «EditText numberOfRooms», если мой основной пост не был ясен. – funky

+0

Я забыл добавить trim(), я отредактировал свой ответ – Radoslav

+0

Я попробовал еще раз и не повезло :(. Чтобы быть уверенным, я объявил «EditText numberOfRooms;» внутри моего публичного класса, но мой фактический идентификатор editText для записи пользователя поле является 'numberRooms', это правильно или следует изменить номер EditTextOfRooms в моем общедоступном классе на EditText numberRooms? – funky

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