AndroidがEditTextコントロールを実現し、内容の入力を禁止する方法(テストdemoを添付)

2093 ワード

本明細書の例は、AndroidがEditTextコントロールにコンテンツの入力を禁止する方法を実現することを示す。皆さんに参考にしてあげます。具体的には以下の通りです。
問題:
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プログラムの設計に役に立ちます。