0

このリンクを参照しました!

私のニーズ:クリックまたはフォーカスした場合EditTextは、を呼び出す必要がありますMenus。メニューでは、2つのオプションを作成したいと思います。つまり、通常の書き込みとキーボードの書き込みです。

ユーザーがキーボード書き込みを選択すると、Androidキーボードのように見えます。キーボードから入力できるはずです。そして次は、通常の書き込みです。これは通常のようです。

メニューでは、ユーザーが通常の書き込みを選択した場合、MS-Paintアプリケーションのようにクリックすると1つの画面が表示されます。鉛筆を使用すると、ユーザーはペイントアプリケーションで作成するのと同じように作成できるはずです。

私は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>
4

1 に答える 1

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();
                    }
                }
            });
于 2013-03-07T09:24:48.400 に答える