2015-11-15 27 views
0

我做數據庫的程序。我創建了三個編輯文本,用於添加員工ID,姓名和電話號碼。問題是當我按下添加按鈕而沒有插入任何值的應用程序崩潰。我該如何處理?以下是我寫的代碼。如何在Android上編輯文本代碼添加驗證?

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

    switch (v.getId()){ 

    case R.id.btn_add: 

     Model india = new Model(); 
     india.id=Integer.parseInt(edit_empid.getText().toString());   // convet editable object from get text to string and then into integer 
     india.name = edit_name.getText().toString(); 
     india.phone = edit_phone.getText().toString(); 


     db.addcontact(india); 
     list = db.getAllContacts(); 
     print(list); 
     edit_empid.setText(" "); 
     edit_name.setText(" "); 
     edit_phone.setText(" "); 

     break; 

    case R.id.btn_delete: 

     long id = Long.parseLong(edit_empid.getText().toString()); 

     db.deletecontact(id); 
     list = db.getAllContacts(); 
     print(list); 

     break; 

    case R.id.btn_update: 

     Model Japan = new Model(); 
     Japan.id=Integer.parseInt(edit_empid.getText().toString().trim()); 
     Japan.name = edit_name.getText().toString(); 
     Japan.phone = edit_phone.getText().toString(); 

     int result = db.updatecontact(Japan); 
     System.out.println("Print the update result " + result); 
     list = db.getAllContacts(); 
     print(list); 

     break; 

    case R.id.btn_clear: 

     edit_empid.setText(" "); 
     edit_name.setText(" "); 
     edit_phone.setText(" "); 

     break; 






    } 

} 

}

回答

0

只需添加的,如果你的輸入參數statment檢查 - 的isEmpty 那是我的猜測

1

最好的辦法是使用TextInputLayout。 Google將它引入新的設計庫。爲了使用TextInputLayout你有以下添加到您的build.gradle依賴關係:

compile 'com.android.support:design:22.2.0' 

然後用它在你的XML文件:

<android.support.design.widget.TextInputLayout 
android:id="@+id/textInputLayout" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 

<EditText 
    android:id="@+id/editText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:hint="Enter your name"/> 
</android.support.design.widget.TextInputLayout> 

在做之前你的數據庫作品請與價值的EditText if語句,如果它是不正確的嘗試:

TextInputLayout til = (TextInputLayout) findViewById(R.id.textInputLayout); 
editText.setErrorEnabled(true); 
editText.setError("You need to enter a name"); 

enter image description here

0

用戶輸入永遠是邪惡的!在你的腦海裏明確表達。你永遠不能相信用戶只會把正確的東西放到你的輸入中。 所以才範圍檢查每個輸入。如果你想得到沒有空字符串通過檢查它

String input1 = edittext1.getText(); 
if(1 > input1.length()) { 
    // tell user to check edittext1 
} else { 
    // do your update stuff 
} 

需要爲每個輸入發生相同的東西。如果你e。 G。試圖讓int類型檢查他們,如果適合你的預期範圍等等....

這個你不需要把一個空間價值到您的editTexts在清除全身...(這需要如果他想正確設置edittext( - >邪惡的用戶只是忽略空格並輸入它的名字,並且在將它放入數據庫之前必須檢查空格的前導符號或結束符號),則用戶將其刪除(

提示:正則表達式字符串,以確保輸入是正確的;)

相關問題