All solved now.
I put together the very simplest project showing how to disable the softkeyboard in code:
Sub Process_Globals
Private NativeMe As JavaObject
End Sub
Sub Globals
Private edtTest As EditText
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout")
DisableSoftKeyboard(edtTest)
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
#IF JAVA
import android.widget.EditText;
import android.os.Build;
import android.text.InputType;
public void disableSoftKeyboard(final EditText v) {
if (Build.VERSION.SDK_INT >= 11) {
v.setRawInputType(InputType.TYPE_CLASS_TEXT);
v.setTextIsSelectable(true);
v.setShowSoftInputOnFocus(false);
} else {
v.setRawInputType(InputType.TYPE_NULL);
v.setFocusable(true);
}
}
public void enableSoftKeyboard(final EditText v, int iKeyBoardType) {
if (Build.VERSION.SDK_INT >= 11) {
v.setRawInputType(iKeyBoardType);
v.setTextIsSelectable(true);
v.setShowSoftInputOnFocus(true);
} else {
v.setRawInputType(iKeyBoardType);
v.setFocusable(true);
}
}
#END IF
Sub DisableSoftKeyboard(oEditText As EditText)
If NativeMe.IsInitialized = False Then
NativeMe.InitializeContext
End If
NativeMe.RunMethod("disableSoftKeyboard", Array As Object(oEditText))
End Sub
Now this works fine, the softkeyboard doesn't show and also when putting the focus in the edit text
and pausing the app and then resuming the app the keyboard doesn't show, so the Java code does
the job nicely. Why then in the real app this was not so and why then did the soft keyboard still show
in the above scenario on resuming? Comparing to the simple example above showed the answer as the
only difference was that NativeMe in the simple example was declared in Sub Process_Globals and the real
app in Sub Globals and changing that solved the problem, so a simple mistake indeed.
So now I don't need in the manifest anymore:
SetActivityAttribute(Main, android:windowSoftInputMode, stateAlwaysHidden)
And I am able to switch between the default softkeyboard and my custom softkeyboard in code, so all solved indeed.
RBS