有時候我們可能會用到時時的監聽EditText輸入字元的時時監聽,監聽字元的個數,做一些Regex的處理等。如下方法可以實現:
我做的是時時的把EditeText輸入的資料同步到TextView上
布局檔案:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" tools:context=".Test02Activity" /> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textview" android:layout_below="@+id/textview" android:layout_marginTop="31dp" > <requestFocus /> </EditText></RelativeLayout>
java代碼:
package com.example.testdemo;import android.os.Bundle;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.widget.EditText;import android.widget.TextView;import android.support.v4.app.NavUtils;import android.text.Editable;import android.text.TextWatcher;public class Test02Activity extends Activity {private static final String TAG= "Test";private EditText mEditText;private TextView mTextView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test02); mEditText = (EditText) findViewById(R.id.editText1); mTextView = (TextView) findViewById(R.id.textview); mEditText.addTextChangedListener(new TextWatcher(){@Overridepublic void afterTextChanged(Editable s) {Log.d(TAG, "afterTextChanged");}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {Log.d(TAG, "beforeTextChanged:" + s + "-" + start + "-" + count + "-" + after);}@Overridepublic void onTextChanged(CharSequence s, int start, int before,int count) {Log.d(TAG, "onTextChanged:" + s + "-" + "-" + start + "-" + before + "-" + count);mTextView.setText(s);} }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_test02, menu); return true; } }