0
ListView를 에 구현했습니다. Xamarin.Android 행 목록에 몇 개의 단추가 있지만 버튼을 클릭하면 두 번 이상 표시됩니다. 나는이 방법을 시도했지만 나를 위해 일하지 않았다. 나는 BaseAdapter<DA_ClassSectionAttendance>
listview 행 항목이 두 번 이상 클릭되는 이유는 무엇입니까?
public override View GetView(int position, View convertView, ViewGroup parent)
{
View view = convertView;
// re-use an existing view, if one is available
// otherwise create a new one
if (view == null)
view = context.LayoutInflater.Inflate(Resource.Layout.AttendanceCreateRowList, parent, false);
var viewHolder = new ViewHolder(view);
DA_ClassSectionAttendance attendance = this[position];
view.Tag = viewHolder;
viewHolder.ClassSection.Text = attendance.ClassName + " " + attendance.SectionName;
viewHolder.AttendanceEdit.Text = "Edit";
viewHolder.AttendanceNew.Text = "New";
viewHolder.AttendanceNew.Tag = viewHolder;
viewHolder.AttendanceNew.Click += (object sender, EventArgs ex) =>
{
var obj = sender as Button;
var listView = parent as ListView;
//int objectPosition = (int)obj.Tag;
var itemPosition = listView.GetPositionForView(obj);
if (itemPosition != ListView.NoId)
{
CustomFragmentManager fragManager = new CustomFragmentManager();
var fragment = new AttendanceCreateRecyclerFragment();
Bundle args = new Bundle();
var jsonData = JsonConvert.SerializeObject(this[itemPosition]).ToString();
args.PutString(AttendanceCreateRecyclerFragment.DATA_RECEIVE, jsonData);
fragment.Arguments = args;
fragManager.ReplaceFragment(context, fragment);
}
};
return view;
}
에서이 방법을 내가 클릭 이벤트를 구현하기보다는 청취자를 클릭하고 싶은
private class ViewHolder : Java.Lang.Object
{
public ViewHolder(View view)
{
ClassSection = view.FindViewById<TextView>(Resource.Id.class_section);
AttendanceNew = view.FindViewById<Button>(Resource.Id.new_attendance);
AttendanceEdit = view.FindViewById<Button>(Resource.Id.edit_attendance);
}
public TextView ClassSection { get; set; }
public Button AttendanceNew { get; set; }
public Button AttendanceEdit { get; set; }
}
을 다음과 같이 뷰 홀더입니다. 설명과 함께 샘플 코드를 많이 주시면 감사하겠습니다. 고맙습니다.
RecylerView는 ListView보다 효율적입니다. RecylerView를 사용해야합니다. '듣기보다는 클릭 이벤트를 구현하고 싶습니다. '- 차이점은 무엇입니까? 클릭 수신기를보기로 설정하면보기를 클릭 할 때 클릭 이벤트를 차단할 수 있습니다. 클릭 이벤트를 차단하려면 클릭 리스너를 설정해야합니다. –
recylerView를 사용하면 많은 애니메이션과 부드러운 스크롤을 얻을 수 있습니다. –