항목 설정 ListView Android의 SetOnItemClickListener에서 이벤트를 클릭합니다
-
12-11-2019 - |
문제
사용자 정의 어댑터를 사용하여 ListView 행에 세 개의 텍스트 뷰가 있고 행을 클릭하면 선택한 텍스트보기의 클릭 이벤트를 수행하고 싶습니다.
아래의 샘플 코드는 클릭 이벤트입니다.먼저 클릭으로 리스너가 설정되고 두 번째 클릭만으로 실제 클릭 이벤트가 발생합니다. 첫 번째 클릭 자체에서 찾을 수 있습니다.가능합니까?
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int pos, long id) {
final Order orderBooking = (Order)adapter.getItemAtPosition(pos);
// SKU listener
final TextView tvSkuId = (TextView) view.findViewById(orderBooking.getSelectedSkuId());
tvSkuId.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
onSkuClickListener(view, orderBooking);
}
});
// SO listener
final TextView tvSoId = (TextView) view.findViewById(orderBooking.getSelectedSoId());
tvSoId.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
onSoClickListener(view, orderBooking);
}
});
// OR listener
final TextView txtOrId = (TextView) view.findViewById(orderBooking.getSelectedOrId());
//onOrClickListener(view, orderBooking);
txtOrId.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
onOrClickListener(view, orderBooking);
}
});
}
});
. 해결책
초기화시 클릭 목록을 설정하면됩니다.데이터를보기에 바인딩 할 때 어댑터에서 가져 가야합니다.코드가 잘못되었으므로 사용자가 목록의 행을 클릭 할 때마다보기를 초기화합니다.
다른 팁
GetView 메소드에서 Adapater에서 해결하십시오.모든 텍스트보기에 대해 OnClick Listner를 설정하십시오.
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
List<SectionObj> article = (List<SectionObj>) children.get(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.listchildlayout_galleryview, null);
}
Gallery gallery = (Gallery) convertView.findViewById(R.id.customviewgallery);
gallery.setAdapter(new AddImgAdp(context, article, groupPosition ));
gallery.setOnItemClickListener(mOnGalleryClick);
return convertView;
}
private OnItemClickListener mOnGalleryClick = new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
}
};
.
위의 내용은 갤러리보기입니다.TextView 을 제외하고는 동일한 작업을 수행하십시오.
제휴하지 않습니다 StackOverflow