繁体   English   中英

在android上禁用软键盘不起作用。 供测试用

[英]disable soft keyboard on android not working. for testing

我尝试了多种方法来禁用测试中的软键盘,但无法正常工作。

  1. 添加到我的androidmanifest.xml

      <activity android:name="com.photos.ui.activity.WelcomeActivity" android:windowSoftInputMode="stateHidden" /> 

    活动是应用程序文件夹的名称(不是我的测试脚本)

  2. 添加到我的androidmanifest.xml

     <LinearLayout android:focusable="true" android:focusableInTouchMode="true" 

    />

  3. 放在我的测试和设置中

     EditText edtView=solo.getEditText(0); edtView.setInputType(InputType.TYPE_NULL); 
  4. 试过了

      InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(solo.getEditText(0).getWindowToken(),0); 

但是getSystemService给我一个错误。 (在我的课程中未定义)我不确定如何使用这两个命令

我将2.3与三星展览II配合使用。

现在我正在使用:

    hnm, what calls would I need to create the context object? right now im using:    private Context context;

private static Class<?> launcherActivityClass;
static{
        try {
                launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
        } catch (ClassNotFoundException e) {
                throw new RuntimeException(e);
        }
}

public TestMain() throws ClassNotFoundException {
    super(TARGET_PACKAGE_ID, launcherActivityClass);
}

public TestMain(String name) throws ClassNotFoundException {
    super(TARGET_PACKAGE_ID, launcherActivityClass);
    setName(name);
}

public TestMain(String name, Class<?> className) throws ClassNotFoundException {
    super(TARGET_PACKAGE_ID, className);
    setName(name);

}


private Solo solo;

 @Override  
protected void setUp() throws Exception {


        solo = new Solo(getInstrumentation(), getActivity());

    Log.v("setup","setup");



}

@Override
protected void tearDown() throws Exception {

        solo.finishOpenedActivities();
}   

谢谢。

getSystemService()是Context一种方法,因此,如果尝试调用时所在的类不是Context (活动扩展,因此 Context),则需要放置引用和点在方法的前面 您需要怎么做取决于您试图将这两行放入哪种类型的结构中。 如果您仍在Activity中,但当前在一个内部类中,则可以通过以下方法进行修复:

YourActivityName.this.getSystemService();

如果您在其他类中,则需要有一种将Context传递给它的方法,以便可以在传递给您的Context对象上调用该方法(即,作为构造函数参数)。

编辑:

我认为,您可能希望将此代码放入WelcomeActivity我认为的内部,而不是此测试对象的内部。 我无法根据发布的内容一目了然,但是如果您对那段代码不满意,那么我猜是launcherActivityClass将参与获取上下文。 您是否将此夸大为一个Activity对象? 如果是这样,您可以将其作为上下文传递而无需执行任何操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM