Java Code Examples for android.view.View.findFocus()

The following are Jave code examples for showing how to use findFocus() of the android.view.View class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
Example 1
Project: letv   File: HListView.java   Source Code and License Vote up 7 votes
private boolean handleHorizontalFocusWithinListItem(int direction) {
    if (direction == 33 || direction == 130) {
        int numChildren = getChildCount();
        if (this.mItemsCanFocus && numChildren > 0 && this.mSelectedPosition != -1) {
            View selectedView = getSelectedView();
            if (selectedView != null && selectedView.hasFocus() && (selectedView instanceof ViewGroup)) {
                View currentFocus = selectedView.findFocus();
                View nextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) selectedView, currentFocus, direction);
                if (nextFocus != null) {
                    currentFocus.getFocusedRect(this.mTempRect);
                    offsetDescendantRectToMyCoords(currentFocus, this.mTempRect);
                    offsetRectIntoDescendantCoords(nextFocus, this.mTempRect);
                    if (nextFocus.requestFocus(direction, this.mTempRect)) {
                        return true;
                    }
                }
                View globalNextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) getRootView(), currentFocus, direction);
                if (globalNextFocus != null) {
                    return isViewAncestorOf(globalNextFocus, this);
                }
            }
        }
        return false;
    }
    throw new IllegalArgumentException("direction must be one of {View.FOCUS_UP, View.FOCUS_DOWN}");
}
 
Example 2
Project: smart-asset-iot-android-demo   File: UIUtils.java   Source Code and License Vote up 6 votes
public static void hideKeyboard(View v) {
    if (v == null) {
        return;
    }

    View focus = v.findFocus();
    if (focus != null) {
        Context c = v.getContext();
        InputMethodManager imm =
                (InputMethodManager) c.getSystemService(Context.INPUT_METHOD_SERVICE);

        imm.hideSoftInputFromWindow(focus.getWindowToken(), 0);
    }
}
 
Example 3
Project: exciting-app   File: HListView.java   Source Code and License Vote up 6 votes
/**
 * To avoid horizontal focus searches changing the selected item, we
 * manually focus search within the selected item (as applicable), and
 * prevent focus from jumping to something within another item.
 * 
 * @param direction
 *            one of {View.FOCUS_LEFT, View.FOCUS_RIGHT}
 * @return Whether this consumes the key event.
 */
private boolean handleHorizontalFocusWithinListItem(int direction) {
	// TODO: implement this
	if (direction != View.FOCUS_UP && direction != View.FOCUS_DOWN) {
		throw new IllegalArgumentException("direction must be one of" + " {View.FOCUS_UP, View.FOCUS_DOWN}");
	}

	final int numChildren = getChildCount();
	if (mItemsCanFocus && numChildren > 0 && mSelectedPosition != INVALID_POSITION) {
		final View selectedView = getSelectedView();
		if (selectedView != null && selectedView.hasFocus() && selectedView instanceof ViewGroup) {

			final View currentFocus = selectedView.findFocus();
			final View nextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) selectedView, currentFocus,
					direction);
			if (nextFocus != null) {
				// do the math to get interesting rect in next focus'
				// coordinates
				currentFocus.getFocusedRect(mTempRect);
				offsetDescendantRectToMyCoords(currentFocus, mTempRect);
				offsetRectIntoDescendantCoords(nextFocus, mTempRect);
				if (nextFocus.requestFocus(direction, mTempRect)) {
					return true;
				}
			}
			// we are blocking the key from being handled (by returning
			// true)
			// if the global result is going to be some other view within
			// this
			// list. this is to acheive the overall goal of having
			// horizontal d-pad navigation remain in the current item.
			final View globalNextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) getRootView(),
					currentFocus, direction);
			if (globalNextFocus != null) {
				return isViewAncestorOf(globalNextFocus, this);
			}
		}
	}
	return false;
}
 
Example 4
Project: SmartMath   File: ActivityPlotXYGraph.java   Source Code and License Vote up 6 votes
public boolean deleteCurveDefView(int nPosition)	{
	if (nPosition >= mlistCurveSettings.length || nPosition < 0)	{
		return false;	// do not exist.
	}
	
	CurveSettings[] listCurveSettings
		= new CurveSettings[mlistCurveSettings.length - 1];
	for (int i = 0; i < mlistCurveSettings.length; i++)	{
		if (i < nPosition)	{
			listCurveSettings[i] = mlistCurveSettings[i];
		} else if (i > nPosition)	{
			listCurveSettings[i - 1] = mlistCurveSettings[i];
		}
	}
	mlistCurveSettings = listCurveSettings;
	
	int nIdxToBeDeleted = -1;
	for (int i = 0; i < mlayoutCurveListViewHolder.getChildCount(); i++)	{
		View vChild = mlayoutCurveListViewHolder.getChildAt(i);
		if (vChild.getTag() != null && vChild.getTag() instanceof CurveDefViewHolder)	{
			if (((CurveDefViewHolder)(vChild.getTag())).mnPosition == nPosition)	{
				nIdxToBeDeleted = i;
				View vFocusOnToBeDeleted = vChild.findFocus();
				if (vFocusOnToBeDeleted != null && vFocusOnToBeDeleted == minputMethod.medtInput)	{
					// ok, we have to change focus, otherwise input may crash
					EditText edtGraphName = (EditText)findViewById(R.id.graph_name_edit);
					edtGraphName.requestFocus();	// if not set new focus, the input from ime may crash.
				}
			} else if (((CurveDefViewHolder)(vChild.getTag())).mnPosition > nPosition)	{
				((CurveDefViewHolder)(vChild.getTag())).mnPosition --;
			}
		}
	}
	if (nIdxToBeDeleted >= 0)	{
		mlayoutCurveListViewHolder.removeViewAt(nIdxToBeDeleted);
	}
	return true;
}
 
Example 5
Project: SmartMath   File: ActivityPlotXYZGraph.java   Source Code and License Vote up 6 votes
public boolean deleteSurfaceDefView(int nPosition)	{
	if (nPosition >= mlistSurfaceSettings.length || nPosition < 0)	{
		return false;	// do not exist.
	}
	
	SurfaceSettings[] listSurfaceSettings
		= new SurfaceSettings[mlistSurfaceSettings.length - 1];
	for (int i = 0; i < mlistSurfaceSettings.length; i++)	{
		if (i < nPosition)	{
			listSurfaceSettings[i] = mlistSurfaceSettings[i];
		} else if (i > nPosition)	{
			listSurfaceSettings[i - 1] = mlistSurfaceSettings[i];
		}
	}
	mlistSurfaceSettings = listSurfaceSettings;
	
	int nIdxToBeDeleted = -1;
	for (int i = 0; i < mlayoutSurfaceListViewHolder.getChildCount(); i++)	{
		View vChild = mlayoutSurfaceListViewHolder.getChildAt(i);
		if (vChild.getTag() != null && vChild.getTag() instanceof SurfaceDefViewHolder)	{
			if (((SurfaceDefViewHolder)(vChild.getTag())).mnPosition == nPosition)	{
				nIdxToBeDeleted = i;
				View vFocusOnToBeDeleted = vChild.findFocus();
				if (vFocusOnToBeDeleted != null && vFocusOnToBeDeleted == minputMethod.medtInput)	{
					// ok, we have to change focus, otherwise input may crash
					EditText edtGraphName = (EditText)findViewById(R.id.graph_name_edit);
					edtGraphName.requestFocus();	// if not set new focus, the input from ime may crash.
				}
			} else if (((SurfaceDefViewHolder)(vChild.getTag())).mnPosition > nPosition)	{
				((SurfaceDefViewHolder)(vChild.getTag())).mnPosition --;
			}
		}
	}
	if (nIdxToBeDeleted >= 0)	{
		mlayoutSurfaceListViewHolder.removeViewAt(nIdxToBeDeleted);
	}
	return true;
}
 
Example 6
Project: letv   File: HListView.java   Source Code and License Vote up 5 votes
private boolean arrowScrollImpl(int direction) {
    if (getChildCount() <= 0) {
        return false;
    }
    boolean needToRedraw;
    View focused;
    View selectedView = getSelectedView();
    int selectedPos = this.mSelectedPosition;
    int nextSelectedPosition = lookForSelectablePositionOnScreen(direction);
    int amountToScroll = amountToScroll(direction, nextSelectedPosition);
    ArrowScrollFocusResult focusResult = this.mItemsCanFocus ? arrowScrollFocused(direction) : null;
    if (focusResult != null) {
        nextSelectedPosition = focusResult.getSelectedPosition();
        amountToScroll = focusResult.getAmountToScroll();
    }
    if (focusResult != null) {
        needToRedraw = true;
    } else {
        needToRedraw = false;
    }
    if (nextSelectedPosition != -1) {
        boolean z;
        if (focusResult != null) {
            z = true;
        } else {
            z = false;
        }
        handleNewSelectionChange(selectedView, direction, nextSelectedPosition, z);
        setSelectedPositionInt(nextSelectedPosition);
        setNextSelectedPositionInt(nextSelectedPosition);
        selectedView = getSelectedView();
        selectedPos = nextSelectedPosition;
        if (this.mItemsCanFocus && focusResult == null) {
            focused = getFocusedChild();
            if (focused != null) {
                focused.clearFocus();
            }
        }
        needToRedraw = true;
        checkSelectionChanged();
    }
    if (amountToScroll > 0) {
        if (direction != 33) {
            amountToScroll = -amountToScroll;
        }
        scrollListItemsBy(amountToScroll);
        needToRedraw = true;
    }
    if (this.mItemsCanFocus && focusResult == null && selectedView != null && selectedView.hasFocus()) {
        focused = selectedView.findFocus();
        if (!isViewAncestorOf(focused, this) || distanceToView(focused) > 0) {
            focused.clearFocus();
        }
    }
    if (!(nextSelectedPosition != -1 || selectedView == null || isViewAncestorOf(selectedView, this))) {
        selectedView = null;
        hideSelector();
        this.mResurrectToPosition = -1;
    }
    if (!needToRedraw) {
        return false;
    }
    if (selectedView != null) {
        positionSelector(selectedPos, selectedView);
        this.mSelectedLeft = selectedView.getLeft();
    }
    if (!awakenScrollBars()) {
        invalidate();
    }
    invokeOnItemScrollListener();
    return true;
}