彈出窗口剛剛打開時,我該怎麼做?有一種方法isPopupShowing()
,但不幸的是沒有像onPopupShow()
回調。Android。檢測何時打開AutoCompleteTextView彈出窗口
回答
嗯,不知道是否有一個更簡單的方法,這是一個有點變通辦法的,但你可以嘗試添加通過addTextChangedListener
TextWatcher
並做了isPopupShowing()
檢查是否彈出到了。再次,它的一些解決方法,並不會工作,如果你prorammatically顯示彈出。
這個解決方案非常接近我的目的,一個問題是我只能在第二次文本更改後才能依靠'isPopupShowing()',並且在第一次出現時無法立即檢測到彈出窗口。 – begezavr 2015-04-03 14:29:11
嗯,作爲替代方法,您可以嘗試覆蓋'AutocompleteTextView'的'onFilterComplete(int count)'方法,並檢查count> 0是否意味着至少有一個值顯示在彈出窗口上,所以popup應該在當時可見。這需要一些測試,以確定它是否真的有效:) – 2015-04-08 12:33:30
@EvripidisDrakos你的建議是最好的方法來做到這一點。如果你有一些過濾結果,並且彈出窗口當前沒有顯示(isPopupShowing()),那麼你知道你即將展示它。使用文本更改的事件將不起作用;即使afterTextChanged()發生在顯示彈出窗口之前。 – ritmatter 2016-01-25 20:15:56
我的答案可能有點不同,但它有效,當你有有效的結果。
1.-延長AutoCompleteTextView
自己的類:
public class ContractsAutoCompleteTextView extends android.support.v7.widget.AppCompatAutoCompleteTextView {
public ContractsAutoCompleteTextView(Context context) {
super(context);
}
public ContractsAutoCompleteTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ContractsAutoCompleteTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
}
2:我們知道,當過濾項目(和後來才所示)onFilterComplete(int count)
會得到通知。介紹在你的類:
@Override
public void onFilterComplete(int count) {
super.onFilterComplete(count);
}
3 .-創建interface
通知UI有多少項被過濾每次更改文本時間:
interface OnContractsAvailability {
void contractsRetrieved(int count);
}
private OnContractsAvailability onContractsAvailability;
public void setOnContractsAvailability(OnContractsAvailability onContractsAvailability) {
this.onContractsAvailability = onContractsAvailability;
}
4.-現在通知您interface
:
@Override
public void onFilterComplete(int count) {
super.onFilterComplete(count);
if (onContractsAvailability != null) {
onContractsAvailability.contractsRetrieved(count);
}
}
這是全班
/**
* Created by rafaelruizmunoz on 07/07/2017.
*/
public class ContractsAutoCompleteTextView extends android.support.v7.widget.AppCompatAutoCompleteTextView {
public ContractsAutoCompleteTextView(Context context) {
super(context);
}
public ContractsAutoCompleteTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ContractsAutoCompleteTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void onFilterComplete(int count) {
super.onFilterComplete(count);
if (onContractsAvailability != null) {
onContractsAvailability.contractsRetrieved(count);
}
}
interface OnContractsAvailability {
void contractsRetrieved(int count);
}
private OnContractsAvailability onContractsAvailability;
public void setOnContractsAvailability(OnContractsAvailability onContractsAvailability) {
this.onContractsAvailability = onContractsAvailability;
}
}
這是UI實現
contractsET.setOnContractsAvailability(count -> System.out.println(String.valueOf(count)));
而這些結果
11月7日至7日:51:36.975 32174-32174 /? I/System.out:3138
07-07 11:51:37.520 32174-32174 /? I/System.out:1147
07-07 11:51:37.656 32174-32174 /? I/System.out:167
07-07 11:51:38.538 32174-32174 /? I/System.out:87
07-07 11:51:39.240 32174-32174 /? I/System.out:17
07-07 11:51:40.039 32174-32174 /? I/System.out:3
07-07 11:51:41.343 32174-32174 /? I/System.out:0
- 1. 檢測阻止的彈出窗口而不打開彈出窗口
- 2. 檢測窗口何時被打開
- 3. 如何打開彈出窗口並關閉彈出窗口?
- 4. 如何在彈出窗口中打開彈出窗口?
- 5. 打開HTML彈出窗口
- 6. 如何檢測我的窗口在彈出窗口中是否打開
- 7. Selenium WindowHandles沒有檢測到所有打開的彈出窗口
- 8. 如何在同時關閉已打開的彈出窗口時打開彈出窗口
- 9. WPF打開彈出窗口並在彈出窗口打開時在主窗口上工作
- 10. 在ASP.NET的彈出窗口中打開一個彈出窗口
- 11. 如何打開彈出式窗口
- 12. 如何打開彈出窗口並刷新彈出窗口關閉時打開的頁面?
- 13. 打開彈出窗口時禁用窗口
- 14. 我們如何在Radwindow彈出窗口中打開raddatepicker彈出窗口
- 15. Silverlight彈出窗口:如何在打開彈出窗口後調用方法?
- 16. 當彈出窗口時Android彈出窗口消失
- 17. 打開新窗口彈出窗口與瀏覽器分開
- 18. 如何從Silverlight Out-of-Browser打開窗口彈出窗口?
- 19. 如何檢測bootstrap彈出窗口上的單擊對象是否打開?
- 20. 未在codeigniter中打開彈出窗口
- 21. MVC在彈出窗口中打開PDF
- 22. 未打開彈出窗口 - 引導
- 23. 打開的彈出窗口點擊
- 24. 使用javascript打開彈出窗口
- 25. 關於打開新的彈出窗口
- 26. 有一個彈出窗口打開後
- 27. 打開一個彈出窗口
- 28. 打開彈出窗口呼籲行動
- 29. 在彈出窗口中打開Spring jsp
- 30. Android:如何在彈出窗口中打開WebView?
你想要做什麼?彈出窗口打開之前你想做些什麼嗎? – Pankaj 2015-04-03 09:44:16
@Clairvoyant我想發送一條消息到我的統計服務器關於這個彈出窗口打開:)之前或之後是無關緊要的,我只是想知道popup保證打開並在服務器上計數。 – begezavr 2015-04-03 10:02:51