2010-06-06 3 views
3

나는 주로 작동하는 스피너가 있습니다. 사용자가 항목 중 하나를 선택하면 'onItemSelected'루틴이 올바르게 처리합니다.안드로이드 - 누군가가 스피너를 눌렀지만 그 안에 보이는 아이템을 변경하지 않았다는 것을 알리는 방법

WARN/InputManagerService -이 :

그러나 사용자가 동일한 스피너를 클릭하지만, 현재 표시 사용자들은 이미 눈에 보이는 항목에서 변경되지 않습니다는 'onItemSelected'루틴은 그냥 무시하고 로그를 보여 주면

(577) : 이미 초점을 맞춘 윈도우 포커스 : [email protected]

어쨌든 이것을하는 사람을 붙잡기 위해 나는 거기에 있습니까? 아이디어는 제 스피너에 이름 목록이 포함되어 있으며, 사용자가 스피너에서 하나를 선택하면 목록보기에 추가됩니다.

방금 ​​다른 버튼을 추가하여 회 전자에서 이름을 가져올 수는 있지만 화면 공간이 부족하여 더 이상 콘텐츠를 추가하지 않을 것입니다.

답변

0

회 전자를 사용하지 않았지만 onItemSelected 루틴에서 회 전자 위치를 재설정 할 수 없습니까? "선택해주세요"라고 말하는 어떤 종류의 null 값.

+1

스피너 목록에 머리글 '공원'을 갖는 아이디어는 나에게 발생하고, 그것을 사용하여이 작업을 수행하는 것은 매우 간단합니다 : - spinnersname.setSelection (0); // 0 = 표제/주차 위치 하지만 약간의 교묘 한 것처럼 보입니다. –

0

setOnItemClickListener을 보았습니까? 당신이 실제로 스피너하지 않으처럼 당신이 당신의 자신의 AdapterView.OnItemClickListener를 구현하고 mySpinner.setOnItemClickListener 방법에 대한 인수로에 전달하면 당신이 onItemClick 방법 내에서 선택한 항목의 위치를 ​​장악 해 할 수 있습니다

+1

java.lang.RuntimeException : setOnItemClickListener는 스피너와 함께 사용할 수 없습니다. 나는 어느 것이 일어날 것이라고 생각하지만, 어쨌든 고마워. 'onItemSelected'만 사용할 수 있습니다. 나는 softarn에서 'park position'아이디어를 가져와야한다고 생각합니다. 그러나 당신의 제안에 감사드립니다. –

1

소리가 난다 , 당신은 단지 그것의 팝업 대화 상자를 위해 그것을 사용하고 있습니다. AlertDialog.Builder을 사용하여 Spinner 사용과 같은 간단한 팝업 대화 상자를 만들 수 있습니다 (UI에서 '추가'버튼 클릭의 결과로)? Spinner는 setSingleChoiceItems을 사용하고 AlertDialog.Buildershow을 사용하여 사용자에게 선택 사항을 표시합니다.

2

이 문제는 Spinner.onClick()을 덮어 쓰면 해결할 수 있지만이 문제는 android 3.0 이상에서 발생합니다 (Spinner.onClick() is called on 2.2 device, not called on 3.0 device).

따라서 가장 좋은 해결책은 @adamp라고 말합니다.

AlertDialog.Builder builder = new Builder(this); 
// maybe get from resources 
CharSequence titles[] = getResources().getTextArray(R.array.titles); 
builder.setItems(titles, new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
    // add your code here    
    } 
}); 
builder.create().show(); 
+0

ㅎ. 필자는 보조 AlertDialog.Builder를 사용하여 하위 선택을하기 때문에 회 전자가 이벤트를 발생 시키길 원하지만 최상위 레벨의 Spinner 상태를 유지해야합니다. – Michael