ユーザーが編集テキストに空白の値を入力した場合にエラーを表示したいのですが、どうすればこれを行うことができません。これは私がこのようにしたい方法です:
これは私が作成した私のXMLです
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal" >
<LinearLayout
Android:id="@+id/headerLayout"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true"
Android:background="@drawable/top_bg"
Android:orientation="horizontal" >
<ImageView
Android:id="@+id/back_button"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="10dp"
Android:layout_marginTop="5dp"
Android:src="@drawable/back_button" />
<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginLeft="75dp"
Android:layout_marginTop="10dp"
Android:text="Traveller Details"
Android:textColor="@Android:color/white" />
</LinearLayout>
<LinearLayout
Android:id="@+id/tittleLayout"
Android:layout_below="@+id/headerLayout"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent"
Android:orientation="vertical" >
<TextView
Android:id="@+id/TittleTravellerDetails"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_marginLeft="10dp"
Android:layout_marginTop="5dp"
Android:gravity="left"
Android:text="Traveller Details" />
<View
Android:layout_width="wrap_content"
Android:layout_height="2dip"
Android:layout_marginTop="2dp"
Android:background="#FF909090" />
</LinearLayout>
<LinearLayout
Android:id="@+id/passengerDetails"
Android:layout_below="@+id/tittleLayout"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent"
Android:orientation="vertical">
<Spinner
Android:id="@+id/Tittle"
Android:layout_width="290dp"
Android:layout_marginLeft="5dp"
Android:layout_marginTop="5dp"
Android:layout_height="wrap_content"/>
<EditText
Android:id="@+id/firstName"
Android:layout_width="290dp"
Android:layout_height="wrap_content"
Android:layout_marginLeft="5dp"
Android:layout_marginTop="5dp"
Android:hint="First Name" />
<EditText
Android:id="@+id/LastName"
Android:layout_width="290dp"
Android:layout_height="wrap_content"
Android:layout_marginLeft="5dp"
Android:layout_marginTop="5dp"
Android:hint="Last Name" />
</LinearLayout>
<LinearLayout
Android:id="@+id/ContactDetailsLayout"
Android:layout_below="@+id/passengerDetails"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent"
Android:layout_marginTop="10dp"
Android:orientation="vertical" >
<TextView
Android:id="@+id/TittleContactDetails"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_marginLeft="10dp"
Android:layout_marginTop="5dp"
Android:gravity="left"
Android:text="ContactDetails" />
<View
Android:layout_width="wrap_content"
Android:layout_height="2dip"
Android:layout_marginTop="2dp"
Android:background="#FF909090" />
</LinearLayout>
<LinearLayout
Android:id="@+id/mobileEmailDetails"
Android:layout_below="@+id/ContactDetailsLayout"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent"
Android:orientation="vertical">
<EditText
Android:id="@+id/mobileNumber"
Android:layout_width="290dp"
Android:layout_height="wrap_content"
Android:layout_marginLeft="5dp"
Android:layout_marginTop="5dp"
Android:inputType="number"
Android:hint="Mobile No" />
<TextView
Android:id="@+id/emailid"
Android:layout_width="284dp"
Android:layout_height="wrap_content"
Android:layout_marginLeft="8dp"
Android:layout_marginTop="5dp"
Android:hint="Email ID" />
</LinearLayout>
<LinearLayout
Android:id="@+id/continueBooking"
Android:layout_below="@+id/mobileEmailDetails"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent"
Android:orientation="vertical">
<ImageView
Android:id="@+id/continuebooking"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_marginLeft="20dp"
Android:layout_marginTop="25dp"
Android:src="@drawable/continue" />
</LinearLayout>
</RelativeLayout>
アクティビティコード
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
emailId = (TextView)findViewById(R.id.emailid);
continuebooking = (ImageView)findViewById(R.id.continuebooking);
firstName= (EditText)findViewById(R.id.firstName);
emailId.setText("[email protected]");
setTittle();
continuebooking.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(firstName.getText().toString().trim().equalsIgnoreCase("")){
firstName.setError("Enter FirstName");
}
}
});
}
だから、ユーザーが彼の名前を入力しない場合、私はあなたがそのような名前を入力していないという画像のようなエラーを表示したいです。
EditText
のPopUpとしてエラーを表示できます
if (editText.getText().toString().trim().equalsIgnoreCase("")) {
editText.setError("This field can not be blank");
}
それは次のようになります
firstName.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
if (firstName.getText().toString().length <= 0) {
firstName.setError("Enter FirstName");
} else {
firstName.setError(null);
}
}
});
private void showError() {
mEditText.setError("Password and username didn't match");
}
次のようなエラーが発生します:
そして、それを削除したい場合:
textView.setError(null);
私は自分の問題の解決策を得ましたこれが他の人にも役立つことを願っています。
public class MainActivity extends Activity {
TextView emailId;
ImageView continuebooking;
EditText firstName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
emailId = (TextView)findViewById(R.id.emailid);
continuebooking = (ImageView)findViewById(R.id.continuebooking);
firstName= (EditText)findViewById(R.id.firstName);
emailId.setText("[email protected]");
setTittle();
continuebooking.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(firstName.getText().toString().trim().equalsIgnoreCase("")){
firstName.setError("Enter FirstName");
}
}
});
firstName.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
firstName.setError(null);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
firstName.setError(null);
}
});
}
if(TextUtils.isEmpty(firstName.getText().toString()){
firstName.setError("TEXT ERROR HERE");
}
または、いくつかの便利なメソッドとユーザーフレンドリーなアニメーションを備えたTextInputLayoutを使用することもできます。
遅すぎますが、誰か助けが必要な場合に備えて。これが実用的なソリューションです。 error
の設定は非常に簡単です。ただし、ユーザーがFocus
を要求すると、ユーザーに表示されます。両方を自分で行うには、このcode
を使用します。
firstName.setError("Enter FirstName");
firstName.requestFocus();
youredittext.equals("")
を使用すると、ユーザーが文字を入力していないかどうかを知ることができます。
Kotlin言語を使用して、
サンプルコード
login_ID.setOnClickListener {
if(email_address_Id.text.isEmpty()){
email_address_Id.error = "Please Enter Email Address"
}
if(Password_ID.text.isEmpty()){
Password_ID.error = "Please Enter Password"
}
}