나는 메서드를 오버라이드하는 사용자 정의 adapter
을 가지고 있습니다.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'은 행동의이 종류를 트리거하는 콜백으로 사용 안되지만 몇 가지 정보를 제공하기 위해 오버라이드 (override)하기위한 것입니다. 즉, 호출되는 방법과시기에 대한 통찰력이나 기대를 가져서는 안됩니다. – fiddler
예'isEnabled'는 분명히 동작을 수행하기위한 것이 아닙니다. 당신은 당신의 접근 방식을 고쳐야한다. 어떤 터치에서도'isEnabled'가 호출된다는 보장은 없다. 그래서 다음 안드로이드 버전으로 코드가 손상 될 수 있습니다. 또한, 전체'Adapter'는 행동을 수행하기에 최적의 장소가 아닙니다. 'ListView' (또는 Adapter를 사용하는 것은 무엇이든)를 가져 와서 그것의'setOnItemClickListener' 메소드를 사용하여 클릭시 액션을 수행하십시오. – zapl
동의합니다. 내 상황은 사용자가 목록 항목을 클릭하여 사용할 수 없게되었을 때 사용자에게 알릴 것을 요구한다는 점에서 독특합니다. 어댑터를 확장하고 isEnabled()를 재정 의하여이 문제를 매우 잘 관리 할 수 있습니다. – HGPB