You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've created a custom adapter, ExistingGameAdapter, that holds a collection of IListViewItems. IListViewItems is implemented by either HeaderListViewItem or SelectableListViewItems. When a SelectableListViewItem is selected, I need to hook into the ItemClick event for that custom adapter. It appears as if the OnInterceptTouchEvent is suppressing that event. I mucked around with that method but couldn't seem to figure it out...
/// A basic adapter for the existing games list view.
/// </summary>
public class ExistingGameAdapter : ArrayAdapter<IListViewItem>{
private readonly List<IListViewItem> _listViewItems;
private readonly LayoutInflater _inflater;
public ExistingGameAdapter(Context context, List<IListViewItem> items) : base(context, 0, items)
{
_inflater = LayoutInflater.From(context);
_listViewItems = items;
}
/// <summary>
/// Gets the number of different view types that are possible.
/// </summary>
public override int ViewTypeCount
{
get { return Enum.GetNames(typeof(ListViewType)).Length; }
}
/// <summary>
/// Gets the value that corresponds to which view to present.
/// </summary>
/// <param name="position"></param>
/// <returns></returns>
public override int GetItemViewType(int position)
{
return (int) GetItem(position).GetViewType();
}
/// <summary>
/// Removes an item at the given position.
/// </summary>
/// <param name="position">The position.</param>
public void Remove(int position)
{
if (_listViewItems != null && _listViewItems.ElementAt(position) != null)
{
Remove(_listViewItems[position]);
}
}
public void Remove(GameDO game)
{
var toRemove = _listViewItems.First(x => x.Game == game);
Remove(toRemove);
}
/// <summary>
/// Gets the game associated with the given position.
/// </summary>
/// <param name="position">The position.</param>
/// <returns>The game that for this position</returns>
/// <remarks>If the item is a <see cref="HeaderListViewItem"/>, then no game will be returned.</remarks>
public GameDO GetGame(int position)
{
if (_listViewItems != null
&& _listViewItems.ElementAt(position) != null
&& !(_listViewItems[position] is HeaderListViewItem))
{
return _listViewItems[position].Game;
}
return null;
}
/// <summary>
/// Gets whether or not the item at the given position is selectable.
/// </summary>
/// <param name="position">The position to test against.</param>
/// <returns>Whether or not the item at the position is selectable.</returns>
public override bool IsEnabled(int position)
{
return !(_listViewItems[position] is HeaderListViewItem);
}
public int GetNumberHeaders(int searchEnd)
{
var collection = _listViewItems.Where(lvi => _listViewItems.IndexOf(lvi) <= searchEnd ).Where (lvi => lvi is HeaderListViewItem);
return collection == null ? 0 : collection.Count ();
}
/// <summary>
/// Gets the associated view for the list view item.
/// </summary>
/// <param name="position">The position.</param>
/// <param name="convertView">The view to convert, or keep the same.</param>
/// <param name="parent">The container for the current convertView.</param>
/// <returns>The final, potentionally converted.</returns>
public override View GetView(int position, View convertView, ViewGroup parent)
{
return GetItem(position).GetView(_inflater, convertView);
}
}
I've created a custom adapter, ExistingGameAdapter, that holds a collection of IListViewItems. IListViewItems is implemented by either HeaderListViewItem or SelectableListViewItems. When a SelectableListViewItem is selected, I need to hook into the ItemClick event for that custom adapter. It appears as if the OnInterceptTouchEvent is suppressing that event. I mucked around with that method but couldn't seem to figure it out...
Below is my layout:
<pulltorefresharp.android.views.ViewWrapper
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_below="@id/prestart_tv_Question"
android:layout_weight="2.5"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="15dp"
android:background="@layout/listviewbackground">
<pulltorefresharp.android.widget.ListView
android:id="@+id/gameselect_listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:listSelector="@drawable/listview_itembackground"
android:padding="2dp"
android:cacheColorHint="#003334"
android:background="@layout/listviewbackground"
android:minHeight="?android:attr/listPreferredItemHeight" />
</pulltorefresharp.android.views.ViewWrapper>
Below is my custom adapter:
///
Below is my usage of the adapter:
The text was updated successfully, but these errors were encountered: