मैं संपादन टेक्स्ट बॉक्स के लिए न्यूनतम और अधिकतम इनपुट मान सेट करना चाहता हूं। मैं EditText के लिए एक सरल सत्यापन बना रहा हूं; यह न्यूनतम 5 और अधिकतम 8 वर्ण वाले ए-जेड और 0-9 मान लेता है।एंड्रॉइड में संपादन टेक्स्ट में न्यूनतम और अधिकतम वर्ण सीमा कैसे सेट करें?
<EditText
android:id="@+id/edittextKode_Listing"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
android:layout_alignTop="@+id/textKode_listing"
android:layout_toRightOf="@+id/textKode_listing"
android:maxLength="8"
android:inputType="textCapCharacters"
android:digits="0,1,2,3,4,5,6,7,8,9,ABCDEFGHIJKLMNOPQRSTVUWXYZ"
/>
लेकिन न्यूनतम मूल्य आवश्यकता सेट करने में सक्षम नहीं:
मैं इस प्रकार अधिकतम और अन्य सत्यापन निर्धारित किया है। मेरा संपादन टेक्स्ट बॉक्स एक चेतावनी संवाद में है। मैंने समस्या को हल करने के लिए निम्न कोड का प्रयास किया:
private void openInboxDialog() {
LayoutInflater inflater = this.getLayoutInflater();
// declare dialog view
final View dialogView = inflater.inflate(R.layout.kirim_layout, null);
final EditText edittextKode = (EditText) dialogView.findViewById(R.id.edittextKode_Listing);
final EditText edittextalamat = (EditText) dialogView.findViewById(R.id.edittextAlamat);
edittextKode.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(edittextKode.getText().toString().length() > 0){
if(edittextKode.getText().toString().length() < 5)
{
edittextKode.setError("Error");
Toast.makeText(GPSActivity.this, "Kode listing value not be less than 5", Toast.LENGTH_SHORT).show();
edittextKode.requestFocus();
}
}
}
});
final AlertDialog.Builder builder = new AlertDialog.Builder(GPSActivity.this);
builder.setTitle("Kirim").setView(dialogView)
.setNeutralButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
gpsCoordinates = (TextView) findViewById(R.id.text_GPS_Coordinates);
kode = edittextKode.getText().toString();
alamat = edittextalamat.getText().toString();
catatan = edittextcatatan.getText().toString();
pengirim = edittextPengirim.getText().toString();
if (kode.length() > 0 && alamat.length() > 0
&& catatan.length() > 0 && pengirim.length() > 0) {
message = "Kode listing : " + kode + "\nAlamat : "
+ alamat + " \nCatatan : " + catatan + " \n Pengirim : " + pengirim
+ "\nKoordinat GPS : "
+ gpsCoordinates.getText().toString();
sendByGmail();
} else {
Toast.makeText(
getApplicationContext(),
"Please fill all three fields to send mail",
Toast.LENGTH_LONG).show();
}
}
});
builder.create();
builder.show();
}`
इस चेतावनी संवाद में, मेरे पास दो संपादन टेक्स्ट बॉक्स हैं। मैं अपने सत्यापन को पहले संपादन टेक्स्ट पर लागू करना चाहता हूं। मैंने फोकस परिवर्तन पर इसकी न्यूनतम लंबाई की जांच करने के लिए setOnFocusChangeListener कहा। यदि लंबाई 5 से कम है तो फोकस के लिए अनुरोध किया गया है, लेकिन यह अभी भी दूसरे संपादन टेक्स्ट बॉक्स में टाइप है।
क्या कोई मेरी मदद कर सकता है।
या मैं कोशिश करता हूं कि आप इसे मेरे कोड पर देख सकते हैं जब मैं दूसरे संपादन पर क्लिक करता हूं तो कर्सर पहले एडिटेक्स्ट पर नहीं जाएगा – nishitpatel
क्षमा करें मुझे याद आया, वह नहीं देख सकता कि यह फोकस का अनुरोध क्यों नहीं करेगा फिर भी टेक्स्ट बॉक्स पर, मैं सोच रहा हूं कि .setError() के साथ कुछ करने के लिए कुछ है, यह बाहर ले जा सकता है और फिर से परीक्षण कर सकता है और देख सकता है कि फोकस आपके उत्तर के लिए – Boardy
thanx काम करता है या नहीं .setError() लेकिन यह अभी भी अगले edittext – nishitpatel