2012-12-12 77 views
0

下面是我的EditText,我想把它輸入一個字符串tel Toast將成功顯示getText toString 但是,我沒有看到在LogCat中放入tel的值。Edittext getText toString

 edittext = (EditText) findViewById(R.id.editTel); 
    edittext.setOnEditorActionListener(new OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      Toast.makeText(Reserve.this, edittext.getText().toString(), Toast.LENGTH_SHORT).show(); 
      tel = edittext.getText().toString(); 
      return true; 
     } 
    }); 

    Log.d("TEL", "The tel is: "+tel); 
+0

它只會在輸入內容時記錄輸出,然後按下editorAction鍵,在softKeyboard上執行完成或下一個鍵。 – Hardik4560

+0

你在哪裏聲明'tel'並且你在其他地方使用'tel = ...'? – Sam

+0

謝謝,我只是把它聲明爲一個全局變量 – CYB

回答

3

Log.d("TEL", "The tel is: "+tel);onEditorAction方法:

@Override 
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
Toast.makeText(Reserve.this, edittext.getText().toString(), 
           Toast.LENGTH_SHORT).show(); 
tel = edittext.getText().toString(); 
Log.d("TEL", "The tel is: "+tel); 
return true; 
} 
}); 

因爲也許有可能控制不被外部OnEditorActionListener

+0

它出現了!爲什麼我不能將日誌從監聽器中刪除? – CYB

+0

並且非常感謝。 – CYB

+1

打印日誌時簡單,tel的值爲空字符串。只有當你做任何動作 – Hardik4560

1

達到你只是調用存儲的引用一個對象(方法OnEditorActionListener類)內的EditText對象。該流程繼續立即執行Log.d()方法,打印並清空¨tel¨。 OnEditorActionListener.onEditorAction()方法將在任何其他時間被調用,由用戶操作觸發,並將執行其中的代碼。也許流可以更清楚寫成這樣:


OnEditorActionListener listener = new OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      Toast.makeText(Reserve.this, edittext.getText().toString(), Toast.LENGTH_SHORT).show(); 
      tel = edittext.getText().toString(); 
      return true; 
     } 
    }); 

edittext = (EditText) findViewById(R.id.editTel); 
edittext.setOnEditorActionListener(listener); 
Log.d("TEL", "The tel is: "+tel); 

這種方式是更清楚的是,onEditorAction()方法是從該段的代碼的執行的正常流動完全獨立的。

相關問題