0

我尝试了多种方法来从我的测试中禁用软键盘,但没有奏效。

  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();
}   

谢谢。

4

1 回答 1

0

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

YourActivityName.this.getSystemService();

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

编辑:

我认为,您可能希望将此代码放在 WelcomeActivity 中,而不是放在这个测试对象中。我无法根据您发布的内容来判断您一直在尝试做什么,但是如果您从那段代码中死心塌地地做这件事,我的猜测是这 launcherActivityClass将涉及获取上下文。您是否将其膨胀为 Activity 对象?如果是这样,您可以将其作为上下文传递而无需对其进行任何操作。

于 2012-06-13T01:27:06.020 回答