У вас есть несколько подходов:
1 - Отключение элементов после того, как пользователь щелкнет один раз, поэтому он не может щелкнуть другой, пока не появится действие (поэтому разрешено только одно)
2- Контроль кликов по времени, например, один раз в секунду. Вам нужно будет сохранить последний раз, когда пользователь нажал на кнопку мыши, сравнить текущее время с ним и проверить, что прошла хотя бы одна секунда. Вероятно, активность откроется до 1 секунды. Для этого вы можете использовать System.currentTimeInMillis (), поэтому у вас будет что-то вроде:
private Long lastTimeUserClicked = null;
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Long clickTime = System.currentTimeInMillis();
if(lastTimeUserclicked==null || clickTime - lasTimeUserClicked > 1000) { //1000 millisecs = 1 sec
//Do your stuff ...
lastTimeUserClicked = clickTime;
}
}
3- Если открываемое вами действие является только одним, и вы изменяете его данные, вы можете установить намерениебыть SingleTop с флагами намерений:
Intent showDetailedInvoice = new Intent(getActivity(), DetailedInvoiceActivity.class);
showDetailedInvoice.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
ПРИМЕЧАНИЕ: не уверены, что вам понадобится очистить верхнюю часть раньше. Если он не работает только с SINGLE_TOP, попробуйте добавить также до
showDetailedInvoice.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)