亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TextWatcher如何找到調用它的EditText

發布時間:2020-06-22 14:16:03 來源:網絡 閱讀:4494 作者:wy521angel 欄目:移動開發

    和我在南方一起工作的朋友說,“南北方的差異其實蠻大的。”我家在北方,也在南方工作,不過我倒是覺得差異不怎么大,因為我在北方的時候,就沒有女朋友,而來到了南方,同樣沒有女朋友。

    開發時遇到一個問題,如同標題,當一個類繼承了TextWatcher時,倘若這個類中有很多EditText控件,那么如何知道調用TextWatcher的是哪一個EditText控件呢?如果一個類繼承的是OnClickListener,那可以通過View獲取控件的Id值,從而分辨控件,做對應操作。可惜TextWatcher似乎沒有類似的方法。我是這樣解決的:

    布局文件:

<LinearLayout 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"
    android:orientation="vertical" 
    android:padding="10dp">

    <EditText
        android:id="@+id/edit1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/edittext_1" />
    <EditText
        android:id="@+id/edit2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/edittext_2" />
    <EditText
        android:id="@+id/edit3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/edittext_3" />
    <EditText
        android:id="@+id/edit4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/edittext_4" />
    <EditText
        android:id="@+id/edit5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/edittext_5" />

</LinearLayout>

    很簡單,只是寫了幾個EditText控件。

    主類:

package com.example.edittexttest;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class EditTextTest extends Activity {

	EditText edit1, edit2, edit3, edit4, edit5;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_edit_text_test);

		edit1 = (EditText) findViewById(R.id.edit1);
		edit1.addTextChangedListener(new ClassOfTextWatcher(edit1));
		setCursorToEnd(edit1);
		edit2 = (EditText) findViewById(R.id.edit2);
		edit2.addTextChangedListener(new ClassOfTextWatcher(edit2));
		setCursorToEnd(edit2);
		edit3 = (EditText) findViewById(R.id.edit3);
		edit3.addTextChangedListener(new ClassOfTextWatcher(edit3));
		setCursorToEnd(edit3);
		edit4 = (EditText) findViewById(R.id.edit4);
		edit4.addTextChangedListener(new ClassOfTextWatcher(edit4));
		setCursorToEnd(edit4);
		edit5 = (EditText) findViewById(R.id.edit5);
		edit5.addTextChangedListener(new ClassOfTextWatcher(edit5));
		setCursorToEnd(edit5);

	}

	private class ClassOfTextWatcher implements TextWatcher {

		private TextView view;

		public ClassOfTextWatcher(View view) {
			
			if (view instanceof TextView)
				this.view = (TextView) view;
			else
				throw new ClassCastException(
						"view must be an instance Of TextView");
		}

		@Override
		public void afterTextChanged(Editable s) {
			
			if (s.length() <= 0) {
				switch (view.getId()) {

				case R.id.edit1:
					Toast.makeText(EditTextTest.this, "第一個編輯框為空!",
							Toast.LENGTH_LONG).show();
					break;
				case R.id.edit2:
					Toast.makeText(EditTextTest.this, "第二個編輯框為空!",
							Toast.LENGTH_LONG).show();
					break;
				case R.id.edit3:
					Toast.makeText(EditTextTest.this, "第三個編輯框為空!",
							Toast.LENGTH_LONG).show();
					break;
				case R.id.edit4:
					Toast.makeText(EditTextTest.this, "第四個編輯框為空!",
							Toast.LENGTH_LONG).show();
					break;
				case R.id.edit5:
					Toast.makeText(EditTextTest.this, "第五個編輯框為空!",
							Toast.LENGTH_LONG).show();
					break;
				default:
					break;
				}
			}
		}

		@Override
		public void beforeTextChanged(CharSequence s, int start, int count,
				int after) {

		}

		@Override
		public void onTextChanged(CharSequence s, int start, int before,
				int count) {

		}

	}
	
	//將編輯框的光標移動到末尾
	public void setCursorToEnd(EditText text){
		String content = text.getText().toString();
		text.setSelection(content.length());
	}
}

    寫了一個叫“ClassOfTextWatcher”的內部類,它實現了TextWatcher接口,這個內部類的構造方法中傳入View控件來獲取控件的Id。

    效果圖:

TextWatcher如何找到調用它的EditText

TextWatcher如何找到調用它的EditText


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆林| 滦南县| 共和县| 若尔盖县| 竹北市| 苏州市| 抚远县| 彭州市| 长沙县| 通化县| 宣汉县| 勃利县| 同心县| 万山特区| 新巴尔虎右旗| 尼木县| 右玉县| 英山县| 新绛县| 商河县| 新兴县| 泾阳县| 专栏| 敦化市| 黄骅市| 自治县| 宿州市| 邳州市| 鹰潭市| 上高县| 苏尼特右旗| 大邑县| 德清县| 和田县| 九龙县| 吉安县| 龙泉市| 治多县| 荣昌县| 五常市| 东阿县|