Я разрабатываю приложение для Android, которое у меня есть класс A
. Класс A
имеет прядильщик, и есть класс B, который имеет номер onItemSelected()
, B implements OnItemSelectedListener
и B
является общедоступным. Я хочу вызвать функцию в A
, когда выбран новый элемент. Поэтому, если там был выбран пункт first
, и я меняю его на second
, тогда я хочу вызвать функцию из класса A
.
Я всегда хочу назвать ту же функцию A
. Он обновляет список.
Как я могу это сделать?
Там в 'вертушка с называющий в A
' класс A
s onCreate
:Как вызвать функцию при каждом выборе в spinner
public void addListenerOnSpinnerItemSelection() {
pspinner = (Spinner) findViewById(R.id.spinner1);
pspinner.setOnItemSelectedListener(new B());
}
А класс B:
public class B implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
Toast.makeText(parent.getContext(),
"The selected place: " + parent.getItemAtPosition(pos).toString(),
Toast.LENGTH_SHORT).show();
A.refresh(); //I think I should call A's function like that but
// Android Studio tells meg that refresh() must be static
}
}
Должен ли я называть функция A
«s в addListenerOnSpinnerItemSelection()
? Или в B
's onItemSelected
? Но как?
К сожалению, это не так. Как я могу вызвать функцию A без статического refresh()
? Spinner получает свои элементы из xml.
О, извините, @Steve, может быть, я забыл упомянуть, что я всегда хочу называть одну и ту же функцию при каждом выбранном изменении. Но как назвать функцию A в B? : O 'a.function()'? –
Да, вы бы просто вызвали a.function(); в каждой позиции –
Неверный способ [сравнить строки в Java] (http://stackoverflow.com/questions/513832/how-do-compare-strings-in-java) – codeMagic