2017-01-20 8 views
0

noobieDeveloperBind видимость «TextView» к тексту свойство «EditText» - Android

У меня есть EditText и TextView, как показано

<LinearLayout 
     android:gravity="center" 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.2"> 
     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/editLength" 
      android:hint="LENGTH" 
      android:layout_gravity="center_horizontal|center_vertical" 
      android:background="@android:color/transparent" 
      android:textSize="40dp" 
      android:textAlignment="center" 
      android:textColor="#ffffff" 
      android:textColorHint="#ffffff" /> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="40dp" 
      android:visibility="invisible" 
      android:textColor="#ffffff" 
      android:text="min"/> 
    </LinearLayout> 

, что я хочу достичь, когда я редактировать «editLength Я хочу, чтобы TextView был видимым.

Я не хочу, чтобы это связано с кодом клея (Activity.java). Я предполагаю, что это может быть сделано путем связывания свойства видимости текстового поля с текстом «EditText».

Может ли кто-нибудь посоветовать мне, как этого достичь?

+0

Я не думаю, что в родном Возможное андроида. –

ответ

0

Вы должны использовать TextWatcher. Он используется, чтобы следить за содержимым EditText, пока пользователь вводит данные. Это позволяет вам отслеживать каждый символ при вводе в EditText.

Пример

  EditText inputObj = (EditText)findViewById(R.id.your_id); 
     TextView outputObj = (TextView)findViewById(R.id.your_id2); 
     inputObj .addTextChangedListener(watch); 

     } 
// End Oncreate 

     TextWatcher watch = new TextWatcher(){ 

     @Override 
     public void afterTextChanged(Editable arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
       int arg3) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int a, int b, int c) { 
      // TODO Auto-generated method stub 

      // Add code here //VISIBLE//GONE 
     }}; 

Read How to check if an EditText was changed or not

+0

, но это через код. Я хочу связать свойство видимости в самом файле xml. (Я исхожу из фона WPF) –