Android TextWatcher 는 EditText 의 입력 내용 을 모니터링 하고 개 수 를 제한 합 니 다.

3257 단어 edittexttextwatcher
레이아웃 에서 EditText 는 안 드 로 이 드 레이아웃 에서 자주 사용 되 고 EditText 에 입력 한 내용 에 대해 서도 제한 이 필요 합 니 다.저 희 는 TextWatcher 를 통 해 입력 상자 에 입력 한 내용 을 관찰 하고 필 기 를 할 수 있 습 니 다.
주 레이아웃:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
<TextView android:id="@+id/tv"
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" 
  android:textColor="@android:color/white" 
  android:ellipsize="marquee" 
  android:focusable="true" 
  android:marqueeRepeatLimit="marquee_forever" 
  android:focusableInTouchMode="true" 
  android:scrollHorizontally="true"  
  android:text="Please input the text:"
  />
<EditText android:id="@+id/ET" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content"
  android:inputType="number"/>
</LinearLayout>
자바 코드:

package com.android.text;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class TextWatcherDemo extends Activity {
  private TextView mTextView;
  private EditText mEditText;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mTextView = (TextView)findViewById(R.id.tv);
    mEditText = (EditText)findViewById(R.id.ET);
    mEditText.addTextChangedListener(mTextWatcher);
  }
  TextWatcher mTextWatcher = new TextWatcher() {
    private CharSequence temp;
    private int editStart ;
    private int editEnd ;
    @Override
    public void beforeTextChanged(CharSequence s, int arg1, int arg2,
        int arg3) {
      temp = s;
    }

    @Override
    public void onTextChanged(CharSequence s, int arg1, int arg2,
        int arg3) {
      mTextView.setText(s);
    }

    @Override
    public void afterTextChanged(Editable s) {
      editStart = mEditText.getSelectionStart();
      editEnd = mEditText.getSelectionEnd();
      if (temp.length() > 10) {
        Toast.makeText(TextWatcherDemo.this,
            "             !", Toast.LENGTH_SHORT)
            .show();
        s.delete(editStart-1, editEnd);
        int tempSelection = editStart;
        mEditText.setText(s);
        mEditText.setSelection(tempSelection);
      }
    }
  };
}

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기