2017-01-11 4 views
0

私はEditText個のビューを含むAlertDialogを持っています。ユーザーがのクリアボタンをクリックすると、フォーカスがある現在のビューをテキストから消去する必要があります。AlertDialogの内部にフォーカスを持っている現在のビューを取得するにはどうすればよいですか?

私はgetCurrentFocus()メソッドを使用しています。これはビューを返し、EditTextにキャストします。ただし、このメソッドは常にnullを返します。あなたが活動の代わりに、ダイアログ上で、現在のフォーカスを取得する必要があります

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

あなたの代わりに、ダイアログ上でそれを呼び出す場合、あなたは何を得るのですか? @DanielZolnaiあなたが提案したように 'dialogInterface'を' dialogInterface'としてキャスティングしました。(Dialog)dialogInterface .getCurrentFocus())setText( ""); ' –

+0

@DanielZolnai私はパルテシスを修正するだけでした。ありがとうございました。 – yogur

+0

答えとしてコメントを追加しました –

答えて

1

はここで私が使用しているコードです。

が現在DialogViewを重視取得するには、DialogDialogInterfaceをキャストすることができます

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

構文エラーを返す余分な括弧があります。 '((EditText)((Dialog)dialogInterface).getCurrentFocus())。setText(" ");' – yogur

+0

ありがとう、それを修正しました。 –

関連する問題