2017-04-05 18 views
0

안녕하세요!onItemLongClick은 목록보기의보기 항목을 업데이트하지 않습니다.

onItemLongClick이 listview의 항목을 업데이트하지 않는 이유를 알고 싶습니다만, onItemClick을 사용하면 예상대로 작동합니다. 이것은 내 코드 조각입니다. 죄송 합니다만 그 발췌 문장에 return 문을 추가하는 것을 잊었지만 여전히 문제는 해결되지 않았습니다.

private void updateView(int position) { 
    View v = listView.getChildAt(position - 
      listView.getFirstVisiblePosition()); 

    ImageView tempImgView = (ImageView) v.findViewById(R.id.avatarIcon); 
    if (listView.isItemChecked(position)) { 
     tempImgView .setImageResource(R.drawable.ic_check_24dp); 
    } else { 
     tempImgView .setImageResource(R.drawable.ic_uncheck_24dp); 
    } 
} 


@Override 
public void onItemClick(AdapterView<?> arg0, View view, int position, 
     long id) { 
     updateView(position); 
     return true; 
} 

@Override 
public boolean onItemLongClick(AdapterView<?> arg0, View view, int position, 
     long id) { 
    updateView(position); 
    return true; 
} 
+0

post updateView(). – Rajasekhar

+0

코드가 컴파일되지 않습니다. –

+0

안녕 내 모든 사과 나는 return 문을 추가하는 것을 잊었다. 그러나 문제는 아직 해결되지 않았다. – Kuro

답변

1

true를 반환해야 Android가 클릭이 소비되었음을 알 수 있습니다.

@Override 
public boolean onItemLongClick(AdapterView<?> arg0, View view, int position, 
     long id) { 
    updateView(position); 
    return true; 
} 
+0

맞습니다. 나는 true를 반환하면서 안드로이드가 코드의 어딘가에 그것을 구현하는 경우에 대비하여 onItemClick 이벤트로 귀찮게하지 않을 것입니다. –

+0

안녕하세요, 사과드립니다. 그 문제에 대한 진술을 추가하는 것을 잊어 버렸지 만 여전히 문제는 해결되지 않았습니다. – Kuro

-1

은 인스턴스화 한 후에 당신의 품목보기 설정 :

yourItemView.setLongClickable(true); 
yourItemView.setOnLongClickListener(this); 

그리고 긴 클릭 이벤트 수익을 추가해야합니다 :

@Override 
public boolean onItemLongClick(AdapterView<?> arg0, View view, int position, 
     long id) { 
    updateView(position); 
    return true; 
} 
+0

OnItemLongClick은 listView 내의 itens에 대한 콜백이며 onLongClickListener는 각 항목에 대해 많은 콜백을 추가합니다. –

+0

안녕 여러분의 의견에 감사드립니다. 나는 이미 모든 견해를 설명하고 듣는 사람에게도 사과한다. 내 귀환 진술을 거기에 추가하는 것을 잊어 버렸지 만 여전히 문제는 해결되지 않았다. – Kuro

0

당신은 onItemLongClick 리스너의 진정한 가치를 반환해야합니다 시도해보십시오. -

@Override 
    public boolean onItemLongClick(AdapterView<?> arg0, View view, int position, 
     long id) { 
    updateView(position); 
    return true; 
    } 

희망이 도움이 될 것입니다. :)

+0

안녕하십니까. 의견을 보내 주셔서 감사합니다. 사과드립니다. 답신을 추가하는 것을 잊었지만 문제는 아직 해결되지 않았습니다. – Kuro