我尝试了多种方法来禁用我的测试中的软键盘,但是没有用。
添加到我的androidmanifest.xml
<activity android:name="com.photos.ui.activity.WelcomeActivity"
android:windowSoftInputMode="stateHidden"
/>
活动是应用程序文件夹的名称(不是我的测试脚本)
添加到我的androidmanifest.xml
<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
/&GT;
将此放入我的测试和我的设置中
EditText edtView=solo.getEditText(0);
edtView.setInputType(InputType.TYPE_NULL);
尝试
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();
}
感谢。
答案 0 :(得分:0)
getSystemService()是Context
的一种方法,所以当你尝试调用它时所在的类不是Context
(活动扩展,因此是一个上下文)然后你需要在方法前放一个引用和一个点。您需要如何做到这一点取决于您尝试将这两行放入哪种类型的结构。如果你仍然在一个Activity中,但是目前在一个内部类中,你可以通过这样做来修复它:
YourActivityName.this.getSystemService();
如果你在其他类中,那么你需要有一种方法将Context传递给它,这样你就可以在传递给你的Context对象上调用该方法(即作为构造函数参数)。
修改:
我想,您可能希望将此代码放在WelcomeActivityI中,而不是在此测试对象内部。我根据你发布的内容一直无法判断,但是如果你从那段代码中做到这一点,我的猜测就是launcherActivityClass
将参与获得背景。你把它膨胀成一个Activity对象吗?如果是这样的话,你可以将它作为一个上下文传递而不做任何事情。