2012-11-19 7 views
0

일부 요소가 포커스를 훔치고 있으며 목록 뷰의 클릭이 등록되지 않습니다. 누군가가 찾을 수있는 방법을 제안 할 수 있습니까? 응용 프로그램 작동 방법은 다음과 같습니다포커스가 onclick을 방지합니다.

은 다음과 같습니다

활동> 내부 사용자 정의보기> onTouch> AlertDialog.builder.setView (사용자 정의 목록보기)

내가 실수로 나는 두 가지 선택이 필요하다고 생각하고, 총 성공과 함께 사용 이전에 빌더에서 .setPositiveButton 및 .setNegativeButton을 사용하여 동일한 설정. 하지만 더 많은 선택, 따라서 ListView가 필요합니다. 여기

리스트 뷰에서 관련 라인은 다음과 같습니다
final ListView lv = new ListView(this); 
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names) { 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    if (convertView == null) { convertView = new TextView(GameActivity.this); } 
    ((TextView)convertView).setText((String)getItem(position)); 
    return convertView; 
    } 
    public long getItemId(int position) { return position; } 
    public String getItem(int position) { return names[position]; } 
    public int getCount() { return names.length; } 
});      
lv.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    ///////Nothing happens, never called 
    } 
}); 

나는 2-30 스택 오버플로 게시물을 읽고, 그것은 거의 항상 초점을 훔쳐보기 함께 할 수있는 뭔가가. 어떤보기가 포커스를 훔치고 있는데 어떻게 디버깅 할 수 있습니까?

감사합니다. :)

+0

만약'convertView'가 위에서 정의한 TextView 일 뿐이라면 다른 것은 awry입니다 ...'onItemClick()'에서 무엇을하려하고 있는데, 어떻게 호출되지 않았는지 어떻게 알 수 있습니까? – Sam

+0

오! 그것은 작동하지만 ... 대화 상자가 열려 있습니다. 나는 내가 바보 인 이유 외에는 stackoverflow를 읽는 데 2 ​​시간을 소비했다고 생각한다. 하지만 답변을 주셔서 감사합니다, 그것은 올바른 방향으로 나를 팁! – pouzzler

+0

"나는 2 시간 동안 stackoverflow를 읽지 않고 내가 바보라고 생각합니다." 연구하는 동안 시간 낭비가 아니 었으면 좋겠다. 그러나 onItemClick()에서'dialog.dismiss()'를 호출하여 그것을 닫으십시오. – Sam

답변

0

대답은 샘의 코멘트에 있습니다. 간단히 말해서, 나는 대화를 무시하지 않았습니다.