Обработка асинхронного вызова внутри onItemClick()

У меня есть реализация onItemClick () при выборе из списка элементов. Однако внутри onItemClick () мне нужно выполнить проверку с помощью вызова библиотеки, который является асинхронным. В основном внутри onItemClick () вызывается XYZ.checkConnection(booleanCallback); сделано что асинхронно. И тогда в booleanCallback(int status) я могу проверить статус. Какой тип шаблона я могу использовать для обработки этого сценария?

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
}
}

Вы используете делегированный подход, если вы хотите модульный класс

Я, по сути, дал вам отправную точку, это может быть изменено в зависимости от того, что вы хотите. Я не совсем понял ваш контекст. Поэтому обобщенный ответ

Другие вопросы по тегам