AndroidがEditTextコントロールを実現し、内容の入力を禁止する方法(テストdemoを添付)
本明細書の例は、AndroidがEditTextコントロールにコンテンツの入力を禁止する方法を実現することを示す。皆さんに参考にしてあげます。具体的には以下の通りです。
問題:
androidはどうやってEditTextコントロールを実現しますか?
修正版の解決方法:
なお、テキストの入力を禁止する場合は、レイアウトファイルにAndroid:focusable=「false」を追加します。
あるいはコードの中でedit Text.set Focusableを使って、Okではないですか?
プロジェクトの需要はこのようにしています。EditTextの上にsetText()の内容がある場合、入力を禁止し、修正されることを防ぐ必要があります。
内容が表示されていない場合は、EditTextを入力可能状態に設定します。
テスト検証を経て:setFocusable方法の効果は初めて使う時にのみ有効で、つまりレイアウトファイルに設定すると:
Android:focusable="false"であっても、コードにこのコントロールの属性を設定します。edit Text.set Focusable(true);編集もできません。
つまりsetFocusable案はいけません。模索して実行可能な方案を導き出す。
edit Text.setInputType(InputType.TYPE_)を利用します。NULL);携帯のソフトキーボードは禁止されています。
edit Text.setInputType(InputType.TYPE_CLASS_TEXT);を選択します。
アプリケーションはデフォルトでオープン状態です。
特に注意してください。この方法はソフトキーボードを禁止するしかありません。もし携帯にハードキーボードがあれば、この方案は無効になります。
添付テストデモ:
問題:
androidはどうやってEditTextコントロールを実現しますか?
修正版の解決方法:
EditText editText = (EditText) findViewById(R.id.editText1);
editText.setKeyListener(null);
この問題を見て、皆さんはおかしいかもしれません。EditTextの機能は上に内容を書き込むのではないですか?なお、テキストの入力を禁止する場合は、レイアウトファイルにAndroid:focusable=「false」を追加します。
あるいはコードの中でedit Text.set Focusableを使って、Okではないですか?
プロジェクトの需要はこのようにしています。EditTextの上にsetText()の内容がある場合、入力を禁止し、修正されることを防ぐ必要があります。
内容が表示されていない場合は、EditTextを入力可能状態に設定します。
テスト検証を経て:setFocusable方法の効果は初めて使う時にのみ有効で、つまりレイアウトファイルに設定すると:
Android:focusable="false"であっても、コードにこのコントロールの属性を設定します。edit Text.set Focusable(true);編集もできません。
つまりsetFocusable案はいけません。模索して実行可能な方案を導き出す。
edit Text.setInputType(InputType.TYPE_)を利用します。NULL);携帯のソフトキーボードは禁止されています。
edit Text.setInputType(InputType.TYPE_CLASS_TEXT);を選択します。
アプリケーションはデフォルトでオープン状態です。
特に注意してください。この方法はソフトキーボードを禁止するしかありません。もし携帯にハードキーボードがあれば、この方案は無効になります。
添付テストデモ:
public class EditTextTest extends Activity
{
/** test EditText forbid input function demo */
EditText editText;
boolean flag = true;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText) findViewById(R.id.editText1);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
if (flag==true)
{
System.out.println(" ");
editText.setInputType(InputType.TYPE_CLASS_TEXT);
flag = false;
}else
{
System.out.println(" ");
editText.setInputType(InputType.TYPE_NULL);
flag = true;
}
}
});
}
}
ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。