我有一個自定義adapter
,我忽略了isEnabled()
方法。listview isEnabled()被調用兩次
我已經注意到,當方法被調用時,它被調用,觸摸,然後觸摸。如果你想要執行某些操作,這有點令人煩惱。
可以說你顯示吐司效應。效果會閃現兩次。
例子:
@Override
public boolean isEnabled(int position) {
Toast.makeText(mContext, "Hello", Toast.LENGTH_SHORT).show(); // this will flash up twice
return true;
}
有向下禁止觸摸的isEnabled()
方法的一種方式?
我想'是不應該isEnabled'用作回調引發這樣的動作,但它打算重寫提供一些信息。換句話說,你不應該對它被調用的方式和時間有任何洞察或期望。 – fiddler
是的'isEnabled'絕對不是用來執行操作的。你應該修復你的方法,並不保證在任何接觸中都會調用「isEnabled」。所以下一個Android版本可能會破壞你的代碼。此外,整個'適配器'不是執行操作的最佳位置。以'ListView'(或任何使用適配器)並使用它的'setOnItemClickListener'方法來執行點擊操作。 – zapl
我同意這一點。我的情況有點獨特,因爲我需要在列表項被點擊和禁用時通知用戶。我可以通過擴展適配器並覆蓋isEnabled()來很好地管理它。 – HGPB