다른 XML 파일을 사용하여보기를 만들고 항목을 밖으로 내보내는 ListView가 있습니다. 이러한 XML 파일 중 하나에 RatingBar가 포함되어 있습니다. 모든 것이 표시되고 훌륭하게 보입니다.RatingBar onClick
나는 새로운 활동을 시작하기 위해 onClick 처리기를 RatingBar에 연결하려고합니다. 내 RatingBar 스타일의? android : attr/ratingBarStyleSmall; 그래서 그것은 단지 지표입니다 (저는 작은 RatingBar 클릭이 다양한 등급을 할 수있는 활동으로 사용자를 데려 가기를 원합니다).
내 문제는 RatingBar에 대한 onClick 처리기가 실행되지 않는다는 것입니다. 더 흥미로운 점은 동일한 코드를 사용하여 LinearLayout을 클릭 할 수있게 만들었고 정상적으로 작동한다는 것입니다. 아무도 그 이유를 말할 수 있습니까? 당신은 일반적으로 당신이 목록보기 항목을 클릭 할 것인지 결정해야한다, 또는 항목이 목록보기에 포함
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
// get the View for this list item
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
switch (type) {
// ...
case TYPE_LOOKUP:
v = vi.inflate(R.layout.layout_itemlist_itemlookup, parent, false);
LinearLayout vLookup = (LinearLayout)v.findViewById(R.id.itemlist_lookup);
if (vStore != null) {
vStore.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// THIS HANDLER WORKS FINE
Intent intentLaunchLookup = new Intent(ActivityItemList.this, ActivityLookup.class);
startActivity(intentLaunchLookup);
}
});
}
break;
case TYPE_SEPARATOR:
v = vi.inflate(R.layout.layout_itemlist_itemseparator, parent, false);
RatingBar r = (RatingBar)v.findViewById(R.id.itemlist_rating);
if (r != null) {
r.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// THIS HANDLER DOES NOT GET EXECUTED (r IS NOT NULL; SO THIS SHOULD HAVE BEEN CREATED)
Intent intentLaunchRating = new Intent(ActivityItemList.this, ActivityRating.class);
startActivity(intentLaunchRating);
}
});
}
break;
// ...
}
}
// …
// return the created view
return v;
}
아무에게도 추가적인 의견이 있습니까? 나는 여전히 onClick 핸들러를 실행할 수 없다. 보시다시피, 나는 LinearLayout에 대해 동일한 코드를 사용하고 있으며 정상적으로 작동합니다. 내 RatingBar는 클릭 가능으로 설정됩니다. 나는 LinearLayout과 RatingBar 모두에 대해 onClick 리스너 내부에 중단 점을 설정하고 LinearLayout 핸들러 만 실행됩니다. 주 : RatingBar는 LinearLayout 내에 있지 않습니다. 보시다시피 두 개의 서로 다른 XML 파일에 있습니다. – Andrew