2011-05-17 35 views
1

我試圖在單擊按鈕以指示用戶填寫空白字段時顯示消息。目前,如果該字段爲空,則會崩潰/強制關閉應用程序。我試圖做下面的代碼,並沒有成功。原來我沒有那裏的if/else,我只是跑了計算器();方法和下面的imm代碼。要求用戶填寫空白的「EditText」字段的Toast消息

有人可以指引我進入正確的方向嗎?

public void onClick(View v) 
    { 
    if ((EditText)findViewById(R.id.amount1)== null) 
    { 
      Context context = getApplicationContext(); 
      CharSequence text = "Enter a number"; 
      int duration = Toast.LENGTH_SHORT; 

      Toast toast = Toast.makeText(context, text, duration); 
      toast.show(); 
    } 
    else 
    { 
     calculator(); 
     InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); 
    } 
    } 

Im相當肯定,這是不好的代碼:

if ((EditText)findViewById(R.id.amount1)== null) 

只是不知道如何字是我想要的方式。

回答

5

嘗試查看文本的長度在小部件的EditText

EditText e = (EditText)findViewById(R.id.amount1)); 
if(e.getText().length == 0){ 
//Show Toast 
}else{ 
//continue your code 
} 
+0

太棒了,這工作完美。感謝大家的投入! – Xarddrax 2011-05-17 21:50:52

0
EditText text = (EditText)findViewById(R.id.amount1); 

if(TextUtils.isEmpty(text.toString())) { 
    // show toast 
} 
0

您確實想檢查EditText的內容是否爲空或空字符串。

在這個行應該是這個樣子:

if("".equals(((EditText)findViewById(R.id.amount1)).getText().toString())) 

當然,你可能會想打破這種說法成多行,使其多一點可讀!

0

即使該字段爲空,edittext也不爲空。用途:

EditText editText = (EditText)findViewById(R.id.amount1); 
String text = new String(editText.getText()); 

if (test.equals("")) { 
//... 
0

((EditText)findViewById(R.id.amount1)== null是剛開id爲amount1到的EditText參考,不檢查,看看是否有的EditText有效的條目。

要看到,如果EditText上有文字,你可以得到的字符串,通過EditText#getText().toString()

持有由爲了使這項工作,首先參考的EditText存儲在一個變種,然後在字符串執行你的檢查:

EditText et = (EditText)findViewById(R.id.amount1); 
String amount1 = et.getText().toString(); 

if (amount1.equals("")) { 
    // Do your stuff here 
} 

我使用局部變量,只是假設你想讓字符串有內容。您可能需要執行其他檢查來處理所有情況(如格式錯誤的輸入)。其中一些可以通過在EditText上設置inputType來減少。例如,如果您只想處理十進制數字,則可以將其設置爲numberDecimal。

2

使用此代碼。

EditText et = (EditText)findViewById(R.id.amount1)); 

if(et1.getText().length() == 0){ 
    //Display toast here 
} else{ 
    //Your code 
}