2016-03-08 4 views
4

У меня есть макет с одним textView и одним EditText и кнопкой. EditText создается как не редактируемый в XML-файле. Я хочу включить его с помощью кода.Сделать EditText редактируемым программным способом

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Name" 
     android:id="@+id/textView12" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/etName" 
     android:layout_below="@+id/textView12" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:editable="false" 
     /> 
    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/edit" 
     android:onClick="edit" 
     android:id="@+id/btnName" 
     android:layout_centerVertical="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 
+0

Сделайте это как 'editText.setEditable (true);' – ELITE

+0

Вы пробовали setFocusable или setEnabled? –

+0

http://stackoverflow.com/questions/660151/how-to-replicate-androideditable-false-in-code –

ответ

8

android:editable="false" Удалить эту строку из файла XML андроида, как этот метод является устаревшим в андроиде. и используйте ниже код для этого.

  • Сделать EditText для редактирования с помощью кода Java

В onCreate деятельности сделайте следующее после setContentView() метода

EditText text = (EditText) findViewById(R.id.etName); 
text.setTag(text.getKeyListener()); 
text.setKeyListener(null); 
  • и сделать его редактируемым используя следующий кодом

    text.setKeyListener((KeyListener) textView.getTag()); 
    

Надеется, что это поможет.

+0

Это сработало Спасибо Elite :) – Krishna

+0

, но приложение вылетает, когда набирает что-то в edittext –

+0

Что такое stacktrace аварии? – ELITE

0

эй вместо редактируемого использования android:enabled="false" и в коде setEnabled(true)

+0

дайте мне знать обратную связь –

+0

Привет, Навин, спасибо за ваше ценное предложение. Но ваше предложение не будет работать согласно моему требованию. Я хочу, чтобы edittext не редактировался по инициативе, щелкнув мышью на кнопке с изображением, он должен стать редактируемым. Согласно вашему предложению, изначально он будет доступен для редактирования при загрузке. – Krishna

+0

попробуйте с этой комбинацией один раз, андроид: enabled = "false" android: focusable = "false" и в коде setEnabled (true) –

Смежные вопросы