16

edittextレイアウトにボタンとボタンがあり、コードではnullとして設定していkeyListenerますedittext

    editText.setKeyListener(null);

自分のに入力できないようにしますedittext。ボタンをクリックすると、に入力できるようになりますediitext。どうやってやるの。簡単な問題ですが、解決策が見つかりません。どんな助けでも大歓迎です。

4

3 に答える 3

24

私はおそらく今遅れていますが、これは私がそれを行う方法です:

public class MyActivity extends Activity
{
    private KeyListener listener;
    private EditText editText;

    public void onCreate(...)
    {
        editText = ... // Get EditText from somewhere
        listener = editText.getKeyListener(); // Save the default KeyListener!!!
        editText.setKeyListener(null); // Disable input
    }

    // When you click your button, restore the default KeyListener
    public void buttonClickHandler(...)
    {
        editText.setKeyListener(listener);
    }
}

基本的に、を呼び出す前に、まずEditTextのデフォルトのKeyListenersetKeyListener(null)を保存します。次に、ボタンをクリックすると、setKeyListener以前に保存したデフォルトのリスナーを渡して、もう一度呼び出します。

于 2012-07-06T03:47:08.827 に答える
6

あなたはこれを使うことができます:

// When you click your button, restore the default KeyListener
public void buttonClickHandler(...)
{
    editText.setKeyListener(new EditText(getApplicationContext()).getKeyListener());
}
于 2015-08-19T08:52:11.177 に答える
2

androidのバグはこちらのバグを参照してください。

しかし、xmlファイルではそれを行うことができます。android:editable="false"

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:editable="false" <<<<<<<
</EditText>
于 2012-06-07T13:43:10.237 に答える