2017-11-13 8 views
0

私はモバイルオートメーションを初めて使いました。私はAndroidで(Javaを使用して)ソフトキーボードを閉じる方法を見つけようとしています。私がこれまでに遭遇した最高のソリューションは、このポストからだった:ソフトキーボードを閉じるためにアクティビティから関数を呼び出すandroid

Close/hide the Android Soft Keyboard

私はそこから使用しようとしている機能は次のとおりです。

public static void hideKeyboard(Activity activity) { 
    InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE); 
    //Find the currently focused view, so we can grab the correct window token from it. 
    View view = activity.getCurrentFocus(); 
    //If no view currently has focus, create a new one, just so we can grab a window token from it 
    if (view == null) { 
     view = new View(activity); 
    } 
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
} 

私のことができるようにしたいですキーボードがポップアップしたときにこの関数を呼び出しますが、私が理解していないことは、この関数を呼び出すときにアクティビティをどのように渡すかです。 Activityオブジェクトの参照を意味=>activity

// Create object of  DesiredCapabilities class and specify android platform 
    DesiredCapabilities capabilities = DesiredCapabilities.android(); 


    // set the capability to execute test in android app 
    capabilities.setCapability(MobileCapabilityType.PLATFORM, Platform.ANDROID); 
    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android"); 
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Emulator_1"); 
    capabilities.setCapability(MobileCapabilityType.VERSION, "8.0"); 
    capabilities.setCapability("appPackage", "com.spreeza.shop.stag.debug"); 
    capabilities.setCapability("appActivity", "com.spreeza.shop.ui.features.splash.EntryPointActivity"); 

    driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 

// click on the login button 
driver.findElement(By.id(identifierName)).click(); 

// close the keyboard 
hideKeyboard(); 
+0

KeyBoardアクティビティがあるときにポップアップします。 hideKeyboard(YourActivity.this)または単にhideKeyboard(this)を呼び出します。 – ADM

+0

あなたのアクティビティが開いたときにキーボードがポップアップしますか? – tahsinRupam

答えて

0

Activityを:私は、次のしているキーボードを閉じるには、関数を呼び出す前に

  1. 以下のようにメソッドを呼び出します。

    hideKeyboard(YourActivity.this);

チェックアウトごActivity名と名前でYourActivityを交換してください。

0

あなたはhideKeyboard(MainActivity.this)としてActivityから関数を呼び出すことができますし、フラグメントからhideKeyboard((Activity)getActivity())

+0

これらの両方の場合、「シンボルgetActivityを解決できません」(または「MainActivity」)というエラーが表示されます – ChrisG29

+0

「MainActivity」の代わりにアクティビティの名前を置き換えます。 –

+0

アクティビティの名前を取得するにはどうすればよいですか?私は使ってみました: String name = this.getClass()。getSimpleName(); hidekeyboard(name.this); でも動作しません – ChrisG29

0
/** 
    * Hide the keyboard 
    */ 
    private void hideKeyboard() { 
     View view = getCurrentFocus(); 
     if (view != null) { 
      ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)). 
        hideSoftInputFromWindow(view.getWindowToken(), 0); 
     } 
    } 
関連する問題