2017-01-11 55 views
0

我有一個AlertDialog,其中包含幾個EditText意見。當用戶點擊清除按鈕時,應從文本中清除當前具有焦點的視圖。如何獲得焦點在AlertDialog中的當前視圖?

我使用的方法getCurrentFocus()它返回一個視圖並將其轉換爲EditText。但是,該方法始終返回null

下面是我使用的代碼:

DialogBuilder.setNeutralButton("Clear", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int i) { 
        ((EditText) this.getCurrentFocus()).setText(""); 
       } 
      }) 
+0

您能得到什麼,如果你把它稱爲對話框呢? '((EditText)((Dialog)dialogInterface).getCurrentFocus())。setText(「」);' –

+0

@DanielZolnai按照你的建議,將'dialogInterface'作爲'Dialog'投射出來。我只需要修復paranthesis。謝謝。 – yogur

+0

添加了註釋作爲答案 –

回答

1

你需要獲得當前焦點的對話,而不是活動上。

要獲得目前主要集中ViewDialog,你可以施放DialogInterfaceDialog

@Override 
public void onClick(DialogInterface dialogInterface, int i) { 
    ((EditText) ((Dialog) dialogInterface).getCurrentFocus()).setText(""); 
} 
+0

還有一個額外的括號給出了語法錯誤。這是它應該如何:'((EditText)((Dialog)dialogInterface).getCurrentFocus())。setText(「」);' – yogur

+0

謝謝,修正它。 –

相關問題