/*
 * Copyright (C) 2006 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.text.method;

import android.text.Spannable;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.widget.TextView;

Provides cursor positioning, scrolling and text selection functionality in a TextView.

The TextView delegates handling of key events, trackball motions and touches to the movement method for purposes of content navigation. The framework automatically selects an appropriate movement method based on the content of the TextView.

This interface is intended for use by the framework; it should not be implemented directly by applications.

/** * Provides cursor positioning, scrolling and text selection functionality in a {@link TextView}. * <p> * The {@link TextView} delegates handling of key events, trackball motions and touches to * the movement method for purposes of content navigation. The framework automatically * selects an appropriate movement method based on the content of the {@link TextView}. * </p><p> * This interface is intended for use by the framework; it should not be implemented * directly by applications. * </p> */
public interface MovementMethod { public void initialize(TextView widget, Spannable text); public boolean onKeyDown(TextView widget, Spannable text, int keyCode, KeyEvent event); public boolean onKeyUp(TextView widget, Spannable text, int keyCode, KeyEvent event);
If the key listener wants to other kinds of key events, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
/** * If the key listener wants to other kinds of key events, return true, * otherwise return false and the caller (i.e. the widget host) * will handle the key. */
public boolean onKeyOther(TextView view, Spannable text, KeyEvent event); public void onTakeFocus(TextView widget, Spannable text, int direction); public boolean onTrackballEvent(TextView widget, Spannable text, MotionEvent event); public boolean onTouchEvent(TextView widget, Spannable text, MotionEvent event); public boolean onGenericMotionEvent(TextView widget, Spannable text, MotionEvent event);
Returns true if this movement method allows arbitrary selection of any text; false if it has no selection (like a movement method that only scrolls) or a constrained selection (for example limited to links. The "Select All" menu item is disabled if arbitrary selection is not allowed.
/** * Returns true if this movement method allows arbitrary selection * of any text; false if it has no selection (like a movement method * that only scrolls) or a constrained selection (for example * limited to links. The "Select All" menu item is disabled * if arbitrary selection is not allowed. */
public boolean canSelectArbitrarily(); }