#android #asynchronous #onitemclick
#Android #асинхронный #onitemclick
Вопрос:
У меня есть реализация onItemClick() при выборе из списка элементов. Однако внутри onItemClick() Мне нужно выполнить проверку с помощью асинхронного вызова библиотеки. В основном внутри onItemClick() выполняется вызов XYZ.CheckConnection(booleanCallback); который является асинхронным. А затем в booleanCallback(состояние int) Я могу проверить статус. Какой шаблон я могу использовать для обработки этого сценария?
Комментарии:
1. Поможет небольшой контекст плюс код. если это задача, связанная с пользовательским интерфейсом, которую вы хотите выполнить при обратном вызове?
2. да, как только я получу результат асинхронного вызова, мне нужно выполнить задачу, связанную с пользовательским интерфейсом.
Ответ №1:
public class Tester extends Activity {
private ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
new CheckConnection(list.getAdapter().getItem(position))
.execute();
}
});
}
private class CheckConnection extends AsyncTask<Void, Void, Void> {
private Object o;
public CheckConnection(Object o) {
this.o = o;
}
@Override
protected void onPreExecute() {
// Do things like initiate progress bar etc
}
@Override
protected Void doInBackground(Void... params) {
// Do connection check
return null;
}
@Override
protected void onPostExecute(Void result) {
int status = 0;
// determine status
booleanCallBack(status, o);
}
}
private void booleanCallBack(int status, Object o) {
// perform UI related
}
}
вы используете подход делегирования, если вам нужен модульный класс
По сути, я дал вам отправную точку, это может быть изменено в зависимости от того, что вы хотите.Я не совсем понял ваш контекст. отсюда и обобщенный ответ