14

私のEditText分野では、最小テキストを必須として、最大テキストを制限として与えたいのですが、それを達成する方法はありますか?

テキストを入力する場合は、数値カウントを減らす必要があります。どうすればいいですか?

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="24dp"
    android:maxLength="175"
    android:ems="10" />

これは私の追加の activity.java です

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home_layout);
    System.out.println(PRAYER_CATEGORY.length);
    tvPrayer = (TextView) findViewById(R.id.mystate);
    spinnerPrayers = (Spinner) findViewById(R.id.spinnerstate);

    ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, PRAYER_CATEGORY);
    adapter_state
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerPrayers.setAdapter(adapter_state);

    value=(EditText)findViewById(R.id.editText1);
    value
       .setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    if (value.getText().toString().trim()
                            .length() < 3) {

                        value.setError("Failed");
                    } else {
                        value.setError(null);
                    }
                }
                else {
                    if (value.getText().toString().trim()
                            .length() < 3) {
                        value.setError("Failed");
                    } else {
                            value.setError(null);
                    }
                }
            }
        });
        btnSpeakprayer = (ImageButton) findViewById(R.id.btnSpeakprayer);
        btn=(Button)findViewById(R.id.button1);
        pb=(ProgressBar)findViewById(R.id.progressBar1);
        pb.setVisibility(View.GONE);
        btn.setOnClickListener(this);
4

5 に答える 5

11

このコードを試すことができます

まず、このようにxmlファイルにmaxlengthを設定します

                    <EditText
                    android:id="@+id/editText"
                    android:layout_width="match_parent"
                    android:inputType="textPassword"
                    android:lines="1"
                    android:maxLength="15"
                    android:maxLines="1"
                    android:singleLine="true" />

次に、コードで次のように書くことができます

et_billamt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                if (et_billamt.getText().toString().trim().length() < 5) {
                    et_billamt.setError("Failed");
                } else {
                    // your code here
                    et_billamt.setError(null);
                }
            } else {
                if (et_billamt.getText().toString().trim().length() < 5) {
                    et_billamt.setError("Failed");
                } else {
                    // your code here
                    et_billamt.setError(null);
                }
            }

        }
    });

フォーカスなしでifを設計したので、ここに最小長条件と最大長条件を書くことができます

于 2013-07-22T07:16:51.793 に答える
8

コードを次のように変更します。

value.getText().trim().length()使用してみる代わりにvalue.getText().length()<3

value.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            if (value.getText().toString().trim().length() < 3)
                value.setError("Failed");
            else
                value.setError(null);
        }
    }
});
于 2013-07-22T09:02:03.987 に答える
1

EditText クラスを拡張し、onTextChanged メソッドをオーバーライドして、テキストの長さの変更を自分で監視できます。その後、制限を制御できます。

public class CustomEditText extends EditText{

public CustomEditText(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
}

@Override
protected void onTextChanged(CharSequence text, int start,
        int lengthBefore, int lengthAfter) {
    // TODO Auto-generated method stub
    Log.i("length", "input text length = " + text.length());
    super.onTextChanged(text, start, lengthBefore, lengthAfter);
}

}

于 2013-07-22T07:28:52.077 に答える
1
Try this
EditText value =(EditText) findviewbyId(R.id.urEditTextId);// this line must be oncreate

// チェックしたい場所にこれらの行を配置します

String ed1=value .getText().toString();
int size=ed1.length();

数字を一致させて適切なアクションを実行できます

if(size==0)
//Toast : kindly enter atleast one letter 

if(size>175)
//Toast : max length 175 char 
于 2013-07-22T07:06:28.650 に答える
0

EditText と Button は次のとおりです。

EditText myEditText;
Button button;

onCreate() で:

myEditText = (EditText) findViewById(R.id.edittext);
button = (Button) findViewById(R.id.button);

ユーザーmyEditTextがボタンを使用して入力した値を送信または使用するとします。このボタンに「OnClickListener」を設定します。

button.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        if (mEditText.length() < 1 ||
            mEditText.length() > 175) {

               mEditText.setError("Value should be between 1 and 175 characters in length");

               mEditText.requestFocus();
        } else {

            // Value is valid (between 1 and 175 characters long)

               String text = mEditText.getText().toString();

            // submit
        } 
    }
});
于 2013-07-22T07:25:48.400 に答える