2012-06-13 84 views
0

我試過多種方法來禁用從我的測試softkeyboard,但不工作。禁用android無法使用的軟鍵盤。測試

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

感謝。

回答

0

getSystemService()是Context的方法,所以如果你是當你試圖調用內部的類不是Context(活動延伸,從而上下文),那麼你就需要在方法前面加上參考和點。你需要怎麼做取決於你試圖把這兩條線放到什麼樣的結構中。如果你仍然是一個活動裏面,但目前都在一個內部類,你可以通過做這樣的修正:

YourActivityName.this.getSystemService(); 

,如果你有一些其他類中,那麼你就需要有一種方式來傳遞上下文,以便您可以調用傳遞給您的Context對象的方法(即作爲構造函數參數)。

編輯:

我想,你想成爲把這個代碼裏面的WelcomeActivityI認爲,不是這裏面的測試對象。我無法根據你發佈的內容來發布你想要做的事情,但是如果你從這段代碼中完成任務,我的猜測是launcherActivityClass將會涉及獲取上下文。你是否將它膨脹成一個Activity對象?如果是這樣,你可以將它作爲上下文而不做任何事情。

+0

hnm,我需要什麼調用來創建上下文對象?現在即時通訊使用: –

+0

不發表評論中的代碼,編輯您的問題,請 – FoamyGuy

+0

對不起!已完成編輯。 –