2017-01-18 8 views
1

кодексаEditText редактируемые и ООН для редактирования в андроида

edtAddress = (EditText) findViewById(R.id.edtAddress); 
edtAddress.setTag(edtAddress.getKeyListener()); 
edtAddress.setKeyListener(null); 
imgEdit.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      edtAddress.setKeyListener((KeyListener) edtAddress.getTag()); 
     } 
    }); 

HI, у меня есть проблемы в то время как открытое приложение, то редактировать текст не редактируется, но когда нажмите на кнопку редактирования, то, что редактирование текста для редактирования.

Я сделал этот код, но проблема в том, что когда я нажимаю на кнопку редактирования, редактирование текста (edtAddress) редактируется, но, когда набирает любой символ, тогда редактировать текст не получает вводный символ, а приложение - сбой.

, что проблема есть, предложить мне

ОШИБКА

E/AndroidRuntime: FATAL EXCEPTION: main 
                  Process: com.hit.fyl_owner, PID: 3128 
                  java.lang.IndexOutOfBoundsException 
                   at android.graphics.Canvas.drawText(Canvas.java:1696) 
                   at android.text.Layout.drawText(Layout.java:410) 
                   at android.widget.Editor.drawHardwareAccelerated(Editor.java:1585) 
                   at android.widget.Editor.onDraw(Editor.java:1507) 
                   at android.widget.TextView.onDraw(TextView.java:5715) 
                   at android.view.View.draw(View.java:16178) 
                   at android.view.View.updateDisplayListIfDirty(View.java:15174) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573) 
                   at android.view.View.updateDisplayListIfDirty(View.java:15134) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573) 
                   at android.view.View.updateDisplayListIfDirty(View.java:15134) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573) 
                   at android.view.View.updateDisplayListIfDirty(View.java:15134) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573) 
                   at android.view.View.updateDisplayListIfDirty(View.java:15134) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573) 
                   at android.view.View.updateDisplayListIfDirty(View.java:15134) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573) 
                   at android.view.View.updateDisplayListIfDirty(View.java:15134) 
                   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593) 
                   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573) 
                   at android.view.View.updateDisplayListIfDirty(View.java:15134) 
                   at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:281) 
                   at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:287) 
                   at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:322) 
                   at android.view.ViewRootImpl.draw(ViewRootImpl.java:2615) 
                   at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2434) 
                   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2067) 
                   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) 
                   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) 
                   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 
                   at android.view.Choreographer.doCallbacks(Choreographer.java:670) 
                   at android.view.Choreographer.doFrame(Choreographer.java:606) 
                   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 
                   at android.os.Handler.handleCallback(Handler.java:739) 
                   at android.os.Handler.dispatchMessage(Handler.java:95) 
                   at android.os.Looper.loop(Looper.java:148) 
                   at android.app.ActivityThread.main(ActivityThread.java:5417) 
                   at java.lang.reflect.Method.invoke(Native Method) 
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
+0

почему 'edtAddress.setKeyListener (нуль);'? –

+1

edtAddress.setFocusable (false), чтобы остановить редактирование .setFocusableInTouchMode (true), чтобы снова включить его. –

+0

@BradleyWilson да –

ответ

1

вы можете установить EditText Disable.

edtOrganization.setFocusable(false); 

Теперь вы можете установить разрешение edittext.

edtFirst.setFocusable(true); 
edtFirst.setFocusableInTouchMode(true); 
0

Вы можете добавить "requestFocus", который фокусирует EditText

 <EditText...> 
     <requestFocus /> 
    </EditText> 
1

попробуйте использовать этот код,

edtAddress = (EditText) findViewById(R.id.edtAddress); 
edtAddress.setEnabled(false); 
imgEdit.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) 
    { 
     edtAddress.setEnabled(true); 
     edtAddress.requestFocus(); 
    } 
}); 
+0

my edittext - maxline, а minline - 3. Если одна строка тогда работает нормально –

+0

как это связано с включением или отключением? –

0

Добавьте это в файл XML EditText:

<EditText ... 
     android:clickable="false" 
     android:cursorVisible="false" 
     android:focusable="false" 
     android:focusableInTouchMode="false"> 
</EditText> 
2

вы можете установить edittext disable.

edtOrganization.setFocusable(false); 

Теперь вы можете установить разрешение edittext.

edtFirst.setFocusable(true); 
edtFirst.setFocusableInTouchMode(true); 

Вы также можете EditText отключить в XML