13

ListView의 항목에 onClickListener를 설정하려고하지만 두 가지 방법, setOnItemClickListenersetOnItemSelectedListener이 표시됩니다. 나는 공식 문서에서이 두 가지에 대한 정당화 된 설명을 찾지 못했습니다. 어떤 목적으로 사용해야합니까?setOnItemClickListener VSViewOnItemSelectedListener는 ListView입니다.

항목을 선택하려면 사용자가 항목을 클릭 한 다음 다른 방법을 사용해야합니다.

답변

20

이 때문이다. setOnItemClickListener :이 AdapterView의 항목을 클릭했을 때 호출 할 콜백을 등록합니다. 항상 true를 반환합니다.

setOnItemSelectedListener :이 AdapterView의 항목이 clicked.it 일 때 호출 할 콜백을 등록하고 true를 반환하고 false도 반환합니다. 항목을 선택하지 않으면 아무 것도 표시되지 않습니다. 옵션을 선택하는 것은 사용자에게 강제적입니다. 항목을 선택하고 다음 단계로 넘어가십시오. 그러나 사용자가 항목을 선택하는 것을 잊었을 때 사용자에게 옵션을 선택하지 않았 음을 기억할 것인지 여부.

+0

오케이. 이건 공정한 것처럼 보입니다. –

+0

그것이 당신을 도왔 으면 좋겠다 !! –

+2

+1 단일 선택과 다중 선택 간의 구분. 검색을 통해 여기에 착륙 한 다른 사람들이 주목할만한 가치가 있습니다. 하나의 선택을 설정으로 지정할 수 있습니다. listView.setChoiceMode (ListView.CHOICE_MODE_SINGLE) –

3

반드시 그렇지는 않습니다. 키보드 또는 가속도계로 탐색 할 수있는 ListView를 가질 수 있습니다. 또한 항목을 클릭해도 해당 항목을 선택하지 않아도됩니다. 다른 이벤트가 발생할 때까지 선택을 차단하려면 한 번 선택 한 후 가능할 수 있습니다.

모든 항목의 선택에 반응하고 싶다면 setOnItemSelectedListener을 사용하십시오. 그러나 사용자가 반응 할 때 반응하려면 setOnItemClickListener으로 가십시오.

0

키패드의 탐색 키나 택볼을 사용하여 목록의 항목을 선택하면 OnItemSelectedListener이 호출됩니다. 이러한 방법과

4

차이는 그 설명에 제시되어있다 :

has been selected vs has been clicked 

실제로 차이 안드로이드 용어을 클릭 단지 선택된사이 것과 동일하다. 강조 표시를 선택하면 에 대한 자세한 설명을 참조하십시오. 상태 here (android : state_selected) 클릭하면 이 (가)으로 android 용어로 클릭되며 android : state_pressed 아래에 있지만 동일한 링크 아래에 설명되어 있습니다. 항목이 확실하지 오전하지만 내 opinion.Might이 잘못 될 수있는 항목을 선택 대 (다중 선택에서 사용) (단일 선택)

+0

읽어 보겠습니다. –

관련 문제