Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 34 additions & 3 deletions devsmartlib/src/com/devsmart/android/ui/HorizontalListView.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ public class HorizontalListView extends AdapterView<ListAdapter> {
private OnItemClickListener mOnItemClicked;
private OnItemLongClickListener mOnItemLongClicked;
private boolean mDataChanged = false;
private View selectedView = null;
private int selectedPosition = -1;


public HorizontalListView(Context context, AttributeSet attrs) {
Expand Down Expand Up @@ -119,8 +121,7 @@ public ListAdapter getAdapter() {

@Override
public View getSelectedView() {
//TODO: implement
return null;
return selectedView;
}

@Override
Expand All @@ -141,7 +142,7 @@ private synchronized void reset(){

@Override
public void setSelection(int position) {
//TODO: implement
setSelectedPosition(position);
}

private void addAndMeasureChild(final View child, int viewPos) {
Expand Down Expand Up @@ -343,6 +344,9 @@ public boolean onSingleTapConfirmed(MotionEvent e) {
for(int i=0;i<getChildCount();i++){
View child = getChildAt(i);
if (isEventWithinView(e, child)) {

setSelectedPosition(i);

if(mOnItemClicked != null){
mOnItemClicked.onItemClick(HorizontalListView.this, child, mLeftViewIndex + 1 + i, mAdapter.getItemId( mLeftViewIndex + 1 + i ));
}
Expand All @@ -362,6 +366,9 @@ public void onLongPress(MotionEvent e) {
for (int i = 0; i < childCount; i++) {
View child = getChildAt(i);
if (isEventWithinView(e, child)) {

setSelectedPosition(i);

if (mOnItemLongClicked != null) {
mOnItemLongClicked.onItemLongClick(HorizontalListView.this, child, mLeftViewIndex + 1 + i, mAdapter.getItemId(mLeftViewIndex + 1 + i));
}
Expand All @@ -384,6 +391,30 @@ private boolean isEventWithinView(MotionEvent e, View child) {
}
};

private void setSelectedView(View selectedView){

this.selectedView = selectedView;

}

@Override
public int getSelectedItemPosition() {
return selectedPosition;
}

private void setSelectedPosition(int selectedPosition) {
this.selectedPosition = selectedPosition;

setSelectedView(getChildAt(selectedPosition));

}

@Override
public long getSelectedItemId(){

return getSelectedView().getId();

}


}