Написать метод для обработки по клику в виде списка Android
Я получаю результаты поиска с моего сервера и отображаю их в виде списка. Во-первых, мне нужно изменить это на выпадающий список. Значения в раскрывающемся списке имеют формат: SchoolA; Россия Мне нужно захватить этот текст по клику и разделить его на SchoolA и Россию. Код выглядит следующим образом на странице активности:
private void populateResults(String response) {
List<String> resultsFromServer = parseResponse(response);
ListView resultsList = (ListView) findViewById(R.id.schoolssListView);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, resultsFromServer);
resultsList.setAdapter(arrayAdapter);
addListenerOnClick(); // this is the method in which i need the above mentioned operations}
Теперь код на странице XML для просмотра списка выглядит следующим образом:
<ListView
android:id="@+id/schoolssListView"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
2 ответа
Попробуй это
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// Your code here , position points to your requirement index
}
});
После нажатия вы можете получить позицию элемента, получить строку из arrayList этой позиции, чтобы вы получили, например: StringA;Russia
Тогда разделите это с сепаратором ;
и использовать это
ОБНОВИТЬ
String currentString = "StringA;Russia";
String[] separated = CurrentString.split(";");
separated[0]; // it will contain StringA
separated[1]; // it will contain russia
чередовать
StringTokenizer tokens = new StringTokenizer(CurrentString, ":");
String first = tokens.nextToken();// this will contain "StringA"
String second = tokens.nextToken();
Вот один пример для реализации пользовательского представления списка и переопределения onItemclick на просмотр списка в Android
Надеюсь, что это поможет. Вы можете спросить, есть ли у вас какие-либо дополнительные вопросы.