OnItemClickListener android를 사용한 ListView
및와 ListView함께 사용자 지정을 사용 RatingBar하고 ImageButton있습니다. 여기 내 문제는 : 내 클릭하면 ListView, 내가 OnItemClickListener작동하지 않습니다. 누구든지 나를 도울 수 있습니다. 암호:
ListView lv = getListView();
setContentView(lv);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
Toast.makeText(SuggestionActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
미리 감사드립니다!
매우 오래된 질문이지만 여전히 답변을 게시하여 누군가에게 도움이 될 수 있습니다. 목록보기 내에서 레이아웃을 사용하는 경우 ...
android:descendantFocusability="blocksDescendants"
... 목록 내 첫 번째 상위 레이아웃에 있습니다. 이것은 마술처럼 작동합니다. 클릭은 목록 내의 어떤 요소에 의해 소비되지 않지만 목록 항목으로 직접 이동합니다.
이봐, 이것 좀 봐, 나를 위해 작동 ... 너도 작동하기를 바랍니다
목록 항목에 ImageButton
문제 : OnItemClickListener전혀 응답하지 않습니다!
이유 : 모름
솔루션 : 코드에서 ImageButton의 초점을“false”
1: ImageButton button = (ImageButton) convertView.findViewById(R.id.imageButton);
2 : button.setFocusable(false);
ListActivity를 확장하는 활동이 있습니다.
onCreate에서 다음과 같이 시도했습니다.
ListView listView = getListView();
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Log.i("Hello!", "Y u no see me?");
}
});
그러나 그것은 작동하지 않았습니다.
대신 단순히 onListItemClick을 재정의해야합니다.
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Log.i("Hello!", "Clicked! YAY!");
}
목록 항목보기에 단추 또는 확인란 또는 이미지 단추가 포함 된 경우 onitemclicklistener 및 onitemlongclicklistener는 자체 onclick 리스너가 있기 때문에 작동하지 않습니다.
focusable을 false로 설정
holder.button.setFocusable(false);
당신이하려는 경우 항목을 클릭 수 있도록 목록보기 사용을
listitem.setClickable(false);
이것은 언뜻보기에는 잘못 보일 수 있지만 작동합니다!
1) OnItemClickListener 또는 OnClickListener (ListView에서는 지원되지 않음)를 사용하고 있는지 확인
문서 Android 개발자 ListView
2) ListView에 Listener를 올바르게 추가했는지 확인하십시오. ListAdapter가 아닌 ListView에 연결되었습니다!
ListView.setOnItemClickListener(listener);
당신은 당신이 사용을 할 수 있는지 확인, OnClickListener를을 사용해야하는 경우 3) DialogInterface.OnClickListener또는 View.OnClickListener(그들은 쉽게) 검증하지 않을 경우 교환 또는 둘 모두를 사용하는 경우 수 있습니다
당신은 또한 사용할 수 있습니다 lambda. Lambda 구문은 Java 1.7 이하 JVM에서 지원되지 않습니다.
listView.setOnItemClickListener((parent, view, position, id) -> {
...
});
이와 같이 ImageButton에 false로 setClickable
imagebutton.setClickable(false);
그런 다음 OnItemClickListenerlistview 를 수행하십시오 .
프로그래밍 방식으로 ListView를 정의하는 경우 :
mListView.setDescendantFocusability(ListView.FOCUS_BLOCK_DESCENDANTS);
listPaired = (ListView) findViewById( R.id.listView1 );
listPairedData = new ArrayList < String >();
araPaired = new ArrayAdapter( this, android.R.layout.simple_list_item_1, listPairedData );
listPaired.setAdapter( araPaired );
listPaired.setOnItemClickListener( listPairedClickItem );
private OnItemClickListener listPairedClickItem = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView < ? > arg0, View arg1, int arg2, long arg3) {
String info = ( (TextView) arg1 ).getText().toString();
Toast.makeText( getBaseContext(), "Item " + info, Toast.LENGTH_LONG ).show();
}
};
다른 제안과 같이 Java에서
listitem.setClickable(false);
또는 xml에서 :
android:clickable="false"
아주 잘 작동합니다
사용중인 목록보기에 이미지가 있습니까> 그런 다음 링크를 따르십시오. http://vikaskanani.wordpress.com/2011/07/20/android-custom-image-gallery-with-checkbox-in-grid- 다중 선택 /
I think when you work out on the link that I have provided first every thing will work fine, I have tried that. If you want a refined answer please elaborate the question with code and description.
Just insert the line into RatingBar:
android:isIndicator="true"
In XML the ratingbar look like this.
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:isIndicator="true"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false" />
Android OnItemClickLIstener conflicts with the OnClickListener of items of row of listview in Adapter. You just have to make sure your code is well managed and properly written with standards.
Check the answer in the link given below:
lv.setOnItemClickListener( new OnItemClickListener() {
@Override
public void onItemClick(AdapterView < ? > parent, View view,
int position, long id) {
// TODO Auto-generated method stub
}
} );
참고URL : https://stackoverflow.com/questions/7645880/listview-with-onitemclicklistener-android
'developer tip' 카테고리의 다른 글
| 다형성의 이점 (0) | 2020.10.31 |
|---|---|
| 내 정렬 루프가하지 말아야 할 요소를 추가하는 것처럼 보이는 이유는 무엇입니까? (0) | 2020.10.31 |
| HttpClient 4.0.1-연결 해제 방법? (0) | 2020.10.31 |
| 순서가 지정되지 않은 목록의 항목 뒤에 파이프 구분 기호 추가 (0) | 2020.10.31 |
| foreach 목록 항목의 역순 (0) | 2020.10.31 |