by Kcm » Mon Jan 10, 2011 11:22 am
I use this in Java :
public void openKeyboard(String msg)
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
final EditText mTextInputWidget = new EditText(this);
mTextInputWidget.setHint("");
builder.setTitle(msg);
builder.setPositiveButton("done", null);
builder.setNegativeButton("cancel", null);
builder.setView(mTextInputWidget);
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton)
{
nativeSendTextValue(mTextInputWidget.getText().toString().toLowerCase());
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
///////////////////////////////////////////////////////////////////////////////////////////////
@Override public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
{
//close keyboard here
}
}
In C :
----------------------------------------
void ShowKeyboard(const char * msg)
{
int ver = _env->GetVersion();
jclass cls = _env->GetObjectClass(_thiz);
jmethodID mid = _env->GetMethodID(cls, "ShowKeyboard", "(Ljava/lang/String;)V" ); //"(I)V");
_env->CallVoidMethod(_thiz, mid, _env->NewStringUTF(msg));
}
extern "C" void Java_xxx_xxx_xxx_JNICall_nativeSendTextValue(JNIEnv * env, jobject thiz, jstring myString)
{
valueString = env->GetStringUTFChars(myString, NULL);
if (valueString == NULL)
{
valueString = "";
}
NdkLog("SendTextValue up= '%s'", valueString);
}
i hope this will help...