19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.text; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * When an object of a type is attached to an Editable, its methods will 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be called when the text is changed. 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface TextWatcher extends NoCopySpan { 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This method is called to notify you that, within <code>s</code>, 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the <code>count</code> characters beginning at <code>start</code> 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * are about to be replaced by new text with length <code>after</code>. 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * It is an error to attempt to make changes to <code>s</code> from 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this callback. 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void beforeTextChanged(CharSequence s, int start, 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int count, int after); 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This method is called to notify you that, within <code>s</code>, 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the <code>count</code> characters beginning at <code>start</code> 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * have just replaced old text that had length <code>before</code>. 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * It is an error to attempt to make changes to <code>s</code> from 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this callback. 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void onTextChanged(CharSequence s, int start, int before, int count); 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This method is called to notify you that, somewhere within 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <code>s</code>, the text has been changed. 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * It is legitimate to make further changes to <code>s</code> from 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this callback, but be careful not to get yourself into an infinite 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * loop, because any changes you make will cause this method to be 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * called again recursively. 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (You are not told where the change took place because other 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * afterTextChanged() methods may already have made other changes 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and invalidated the offsets. But if you need to know here, 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you can use {@link Spannable#setSpan} in {@link #onTextChanged} 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to mark your place and then look up from here where the span 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * ended up. 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void afterTextChanged(Editable s); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 58