亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Edittext 達到最大edittext 長度后跳轉到下一個edittexts

Edittext 達到最大edittext 長度后跳轉到下一個edittexts

肥皂起泡泡 2021-12-22 20:35:43
無論我嘗試做什么,我都無法跳轉第三個編輯文本,如下圖所示。我將 10 寫入第一個 edittext,它會自動移動到第二個 edittext,但是當我寫入 12 時,它不會移動到第三個 edittext。我嘗試了幾件事,但無法處理。我需要一個簡單的解決方案來解決這個問題,最多 10-15 個編輯文本。有人可以幫助我了解語法嗎?謝謝。這是我的活動主要 xml<EditText    android:id="@+id/edittext1"    android:layout_width="30dp"    android:layout_height="wrap_content"    android:textSize="20dp"    android:maxLength="2"    android:hint="1"    android:layout_weight="1"/><EditText    android:id="@+id/edittext2"    android:layout_width="30dp"    android:layout_height="wrap_content"    android:textSize="20dp"    android:maxLength="2"    android:digits="0123456789 "    android:hint="2"    android:layout_weight="1"/><EditText    android:id="@+id/edittext3"    android:layout_width="30dp"    android:layout_height="wrap_content"    android:textSize="20dp"    android:maxLength="2"    android:digits="0123456789 "    android:hint="3"    android:layout_weight="1"/>這是我的主要活動package com.example.serkan.justtry;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.text.Editable;import android.text.TextWatcher;import android.widget.EditText;public class MainActivity extends AppCompatActivity implements TextWatcher {    EditText edt1;    EditText edt2;    EditText edt3;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    edt1=(EditText)findViewById(R.id.edittext1);    edt2=(EditText)findViewById(R.id.edittext2);    edt3=(EditText)findViewById(R.id.edittext3);    edt1.addTextChangedListener(this);}@Overridepublic void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Overridepublic void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Overridepublic void afterTextChanged(Editable editable) {    if (edt1.length() == 2) {        edt2.requestFocus();    }}}
查看完整描述

3 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

您還需要將偵聽器設置為 edt2


    edt2.addTextChangedListener(this);

只需更換


    @Override

    public void afterTextChanged(Editable editable) {


        if(edt1.getText().hashCode() == editable.hashCode()){

            if (edt1.length() == 2) {

                edt2.requestFocus();

            }

        }

        else if( edt2.getText().hashCode() == editable.hashCode()){

            if (edt2.length() == 2) {

                edt3.requestFocus();

            }

        }

    }


查看完整回答
反對 回復 2021-12-22
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

XML 文件沒有問題。只需在 MainActivity.java 中嘗試以下代碼


將 TextChangedListener 添加到第二個編輯文本


edt2.addTextChangedListener(this);                                                               



在 textwatcher 的 onTextChanged 方法中插入以下代碼


@Override

public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {


}


@Override

public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        if(edt1.hasFocus())

    {

        if(edt1.getText().toString().length()==2)     //size as per your requirement

        {

            edt2.requestFocus();

        }

    }

    if(edt2.hasFocus())

    {

        if(edt2.getText().toString().length()==2)     //size as per your requirement

        {

            edt3.requestFocus();

        }

    }


}


@Override

public void afterTextChanged(Editable editable) {


}

我希望這個答案能解決你的問題:)


查看完整回答
反對 回復 2021-12-22
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

XML 文件沒有問題。只需在 MainActivity.java 中嘗試以下代碼


將 TextChangedListener 添加到第二個編輯文本


edt2.addTextChangedListener(this);                                                               



在 textwatcher 的 onTextChanged 方法中插入以下代碼


@Override

public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {


}


@Override

public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        if(edt1.hasFocus())

    {

        if(edt1.getText().toString().length()==2)     //size as per your requirement

        {

            edt2.requestFocus();

        }

    }

    if(edt2.hasFocus())

    {

        if(edt2.getText().toString().length()==2)     //size as per your requirement

        {

            edt3.requestFocus();

        }

    }


}


@Override

public void afterTextChanged(Editable editable) {


}

我希望這個答案能解決你的問題:)


查看完整回答
反對 回復 2021-12-22
  • 3 回答
  • 0 關注
  • 325 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號