#java #arrays #string #spinner
#java #массивы #строка #счетчик
Вопрос:
У меня есть приложение, над которым я работаю в Android Studio. У меня есть массив со списком из 50 состояний.
Пользователь может ввести одну букву текста, а затем должен нажать «поиск». Как только они нажимают поиск, он должен отображать все состояния, начинающиеся с буквы. Например, если они будут искать «k», они должны увидеть Канзас и Кентукки. Эти результаты должны быть представлены в виде счетчика.
Я знаю, что мне нужно использовать
имя_строки.charAt(0);
где-то в моем коде, но я не совсем уверен, где или что еще нужно добавить к этому.
В настоящее время, когда я запускаю свое приложение, независимо от того, какую букву я ищу, приложение отображает «Alabama» в окне поиска, а затем, когда вы щелкаете раскрывающийся список для окна поиска, оно просто показывает все состояния.
Буду признателен за любую помощь, поскольку я довольно новичок в Java, а также в StackOverflow, поэтому я надеюсь, что я представил свой вопрос четко и уместно. Спасибо всем, кто может помочь.
Вот часть моего Java-кода.
public void buttonOnClick(View v) {
Button button = (Button) v;
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayList states = new ArrayList();
states.add("Alabama");
states.add("Alaska");
states.add("Arizona");
states.add("Arkansas");
states.add("California");
states.add("Colorado");
states.add("Connecticut");
states.add("Delaware");
states.add("Florida");
states.add("Georgia");
states.add("Hawaii");
states.add("Idaho");
states.add("Illinois");
states.add("India");
states.add("Iowa");
states.add("Kansas");
states.add("Kentucky");
states.add("Louisiana");
states.add("Maine");
states.add("Maryland");
states.add("Massachusetts");
states.add("Michigan");
states.add("Minnesota");
states.add("Mississippi");
states.add("Missouri");
states.add("Montana");
states.add("Nebraska");
states.add("Nevada");
states.add("New Hampshire");
states.add("New Jersey");
states.add("New Mexico");
states.add("New York");
states.add("North Carolina");
states.add("North Dakota");
states.add("Ohio");
states.add("Oklahoma");
states.add("Oregon");
states.add("Pennsylvania");
states.add("Rhode Island");
states.add("South Carolina");
states.add("South Dakota");
states.add("Tennessee");
states.add("Texas");
states.add("Utah");
states.add("Vermont");
states.add("Virginia");
states.add("Washington");
states.add("West Virginia");
states.add("Wisconsin");
states.add("Wyoming");
final
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, states);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
Комментарии:
1. Я заметил, что вы указали «Индия» вместо «Индиана».
2. Спасибо, что уловили это!
Ответ №1:
При нажатии кнопки, по крайней мере, вам нужно получить значение в поле ввода, затем выбрать, что добавить в этот список ArrayList в соответствии с первой буквой.
Я не видел, чтобы ваш код получал входной текст.
Ответ №2:
ну, вы также можете создать подстроку строки состояния в цикле for и протестировать с помощью входных данных.Подстрока работает с начальными и конечными переменными, такими как Result=states.substring(0,1), поэтому в ней будет сохранена только первая буква