我已经提到了this link!
我的需求:如果我点击或关注EditText
,则应致电Menus
。在菜单中,我想创建两个选项。也就是说,正常书写和键盘书写。
如果用户选择键盘编写,它看起来像Android键盘。应该能够从键盘输入它。接下来,正常写作。这很正常。
在菜单中,如果用户选择正常书写,则在点击MS-Paint应用程序时会出现一个屏幕。使用铅笔,用户应该能够像我们几乎在油漆应用程序中书写一样。
我是Android的新手,虽然学习了!
在我的代码中,我应该在哪里完成菜单的所有功能?
我怎么能这样做?任何帮助或建议都非常感谢!
这是我的代码:
else if(q.trim().equals("A"))
{
fillUp=new EditText(context);
fillUp.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
}
});
fillUp.setBackgroundResource(R.drawable.option);
fillUp.setId(9);
fillUp.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu arg0, View arg1,ContextMenuInfo arg2) {
}
});
fillUp.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
Toast.makeText(context, "Focused", Toast.LENGTH_LONG).show();
if (hasFocus) {
context.getWindow();
context.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
Rl=new RelativeLayout.LayoutParams(weigth/4,height/15);
Rl.addRule(RelativeLayout.BELOW,1);
Rl.addRule(RelativeLayout.CENTER_HORIZONTAL,1);
fillUp.setLayoutParams(Rl);
fillUp.setGravity(Gravity.CENTER);
fillUp.setId(9);
compLayout.addView(fillUp);
我的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/icon"
android:icon="@drawable/keyboard" />
<item android:id="@+id/text"
android:title="Text" />
<item android:id="@+id/icontext"
android:title="Icon and text"
android:icon="@drawable/writing" />
</menu>
答案 0 :(得分:0)
要阻止虚拟键盘的外观,您可以使用.setInputType(InputType.TYPE_NULL)。要显示菜单MainActivity.this.openOptionsMenu(),就像这里:
EditText editText = (EditText) findViewById(R.id.a);
//block kayboard
editText.setInputType(InputType.TYPE_NULL);
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus == true) {
//show menu
MainActivity.this.openOptionsMenu();
} else {
MainActivity.this.closeOptionsMenu();
}
}
});