2017-12-13 6 views
-2

私は通常の機能をKotlinの拡張機能に変換したいだけです。ここでKotlinに拡張機能を書き込むにはどうすればいいですか?

は私の関数は、あなたも、IDEが提供する自動リファクタリングしていることを行うことができ、

fun hideKeyboard(activity: Activity) { 
    if (activity != null) { 
    activity.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_SATE_HIDDEN) 
    val view: View = activity.currentFocus 
     if (true) run { 
      val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager 
      imm.hideSoftInputFromWindow(view.windowToken, 0) 
       } 
      } 
     } 
+2

あなたは 'Activity'の拡張にこれをしようとしていますか?これまでに何を試しましたか? – zsmb13

+0

'hideKeyboard(activity:Activity)' => 'Activity.hideKeyboard()'と 'activity' =>' this'ですか? – Selvin

+0

@Selvinそれはヌルチェックがまだ意味をなさないように、 'Activity? 'の拡張でもあります。 – zsmb13

答えて

3

です:あなたが受信機に変換したいパラメータの場所にカーソルを押しAltキー + と入力し、パラメータを受信者に変換して選択します。

結果は次のとおりです。

fun Activity.hideKeyboard() { 
    if (this != null) { // Note: this check is redundant, since the type is not-null 
     window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_SATE_HIDDEN) 
     val view: View = currentFocus 
     if (true) run { 
      val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager 
      imm.hideSoftInputFromWindow(view.windowToken, 0) 
     } 
    } 
} 
+0

' val view:View = currentFocus'はNPEを引き起こす可能性があります。 nullableとして宣言する必要があります – crgarridos

関連する問題