2016-02-14 4 views

ответ

0

Позволяет Сэй у вас есть edittext1 и edittext2:

edittext1.setBackgroundColor(Color.parseColor("#000000"));

edittext2.requestFocus(); 
+0

Как получить то, что edittext закончил редактирование. – zeet

+0

Что значит «закончить редактирование»? если пользователь редактирует текст, вы не можете знать время lol .. но если вы передаете текст, например edittext.setText («некоторый текст»); то вы должны добавить код, который я написал сразу после этого. –

+0

У меня есть 6 полей edittext на одной странице. Предположим, я добавил текст в edittext1 и перешел к следующему редактору. Затем я хотел изменить цвет фона edittext1. Тот же процесс, если я добавлю некоторые тексты в edittext2 и перейду в edittext3. – zeet

0

Вы должны установить onFocusChangeListener для каждого EditText. Теперь, когда пользователь нажимает на другой EditText и фокус удаляется из первого, onFoucsChange будет вызываться для первого EditText, и вы можете соответствующим образом изменить фон.

+0

Спасибо Piyush. Этот способ работает. Но интересно, что я должен поместить один и тот же код много раз для каждого файла EditText. Любой способ повторного использования одного и того же кода путем вызова одного метода и передачи edittext в качестве параметра. – zeet

+0

Просто реализуйте интерфейс OnFocusChangeListener в своем фрагменте и вызовите edittext.onFocusChangeListener (это) для каждого EditText. Таким образом, будет один onFoucsChange, в котором вы применяете переключатель или if-else, чтобы проверить вид id и продолжить. – Piyush

2

Создайте файл edittext_background.xml в drawable:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/colorEditTextDisable" android:state_enabled="false"/> 
    <item android:drawable="@color/colorEditTextFocusLost" android:state_enabled="true" android:state_focused="false"/> 
    <item android:drawable="@color/colorEditTextFocusGained" android:state_enabled="true" android:state_focused="true"/> 
</selector> 

И добавить желаемые цвета в colors.xml

<color name="colorEditTextDisable">#999999</color> 
<color name="colorEditTextFocusLost">#ffffff</color> 
<color name="colorEditTextFocusGained">#c6c6c6</color> 

ИСПОЛЬЗОВАТЬ ФОНЫ ОТ вводимого коэффициента, попробуйте этот

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/edittext_disabled" android:state_enabled="false"/> 
    <item android:drawable="@drawable/edittext_focus_lost" android:state_enabled="true" android:state_focused="false"/> 
    <item android:drawable="@drawable/edittext_focus_gained" android:state_enabled="true" android:state_focused="true"/> 
</selector> 

и установить это в качестве фона для вашего EditText
В XML: android:background="@drawable/edittext_background"
Или в Java: editText.setBackgroundResource(R.drawable.edittext_background);

+0

У меня есть одна пользовательская структура фона, используемая для каждого edittext. Могу ли я добавить то же самое с этим? – zeet

+0

@zeetmohanty Да, конечно. Вместо использования цветов вы также можете использовать drwables. Я предлагаю создать подходящие чертежи для каждого государства, использующего их. Изменить 'android: drawable =" @ color/colorEditTextFocusGained "' to 'android: drawable =" @ drawable/your_drawable_name "' – Rehan

+0

Я обновил ответ, чтобы сделать его удобным для вас. – Rehan

0

certin кодов я добавил с code.Which Rehan дает лучшую функциональность как веб.

edittext.setOnFocusChangeListener(myEditTextFocus); 

private View.OnFocusChangeListener myEditTextFocus = new View.OnFocusChangeListener() { 
     public void onFocusChange(View view, boolean gainFocus) { 
      //onFocus 
      if (gainFocus) { 
       //set the text 
       //((EditText) view).setText("In focus now"); 
       ((EditText) view).setBackgroundResource(R.drawable.bg_edittext); 
      } 
      //onBlur 
      else { 
       int l=((EditText) view).getText().length();//System.out.println("zeetu"+l); 
       //clear the text 
       if(l>1){((EditText) view).setBackgroundResource(R.drawable.custom_edit_text_new);} 

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