EditTextフィールドを150文字に制限したいのですが、これは非常に簡単に実行できます。ただし、ユーザーがその制限を超えようとしたときに、入力(つまり、151番目の文字)または150文字を超える文字を貼り付けることによって、ユーザーに警告する必要もあります。
これについて行くための最良の方法は何ですか?
EditTextフィールドを150文字に制限したいのですが、これは非常に簡単に実行できます。ただし、ユーザーがその制限を超えようとしたときに、入力(つまり、151番目の文字)または150文字を超える文字を貼り付けることによって、ユーザーに警告する必要もあります。
これについて行くための最良の方法は何ですか?
EditText のメソッドを介して TextWatcher を追加しaddTextChangedListener()
ます。ユースケースに適したメソッドを実装するだけです。おそらく警告ダイアログを表示しますか?
EditText text = (EditText) findViewById(R.id.text);
text.addTextChangedListener(new TextWatcher()
{
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{
if (s.length() > n)
{
new AlertDialog.Builder(MyActivity.this).setTitle("Character limit exceeded").setMessage("Input cannot exceed more than " + n + " characters.").setPositiveButton(android.R.string.ok, null).show();
}
}
@Override
public void afterTextChanged(Editable s)
{
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
}
});
わざわざヒント属性を「最大150文字」のように設定するだけです
android:hint="Max. 150 characters"
この属性で文字数を150文字に制限したほうがいいのですが、
http://androidblogger.blogspot.com/2009/01/numeric-edittext-and-edittext-with-max.html
android:maxLength="150"
お役に立てれば