2016-10-12 19 views
1

我的工作有兩個EditTexts和兩個ImageViews一個應用程序(我的ImageView是刪除圖標的EditText)變化EDITTEXT焦點並作出ImageView的消失

我想,當我把焦點設置EditText1,ImageView1出現並且ImageView2消失,當我將焦點放在EditText2上時,ImageView2出現,ImageView1消失。

我想我應該使用TextWatcher()方法而不是setOnKeyListener(),但我不知道如何去做。

我寫在onCreate()方法的代碼,但我有一個問題:當我把焦點設置EditText1,我必須寫在它的東西,使IMAGE_1出現,IMAGE_2消失(反之亦然當我設置重點EditText2)

editText1.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      image_1.setVisibility(View.VISIBLE); 
      image_2.setVisibility(View.INVISIBLE); 

      return false; 
     } 
    }); 
    editText2.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      image_1.setVisibility(View.INVISIBLE); 
      image_2.setVisibility(View.VISIBLE); 
      return false; 
     } 
    }); 
+0

嘗試使用setOnFocusChangeListener的EditText上。 – Mukesh

回答

0

我不認爲OnKeyListenerTextWatcher將是您的需求的正確解決方案。

你想要的這裏反而是OnFocusChangeListener

View.OnFocusChangeListener focusChangeListener1 = new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View view, boolean b) { 
      image_1.setVisibility(View.VISIBLE); 
      image_2.setVisibility(View.INVISIBLE); 
     } 
    } 
    editText1.setOnFocusChangeListener(focusChangeListener1); 

    View.OnFocusChangeListener focusChangeListener2 = new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View view, boolean b) { 
      image_1.setVisibility(View.INVISIBLE); 
      image_2.setVisibility(View.VISIBLE); 
     } 
    } 
    editText2.setOnFocusChangeListener(focusChangeListener2); 
+0

yeap ...就是它 我已經在onCreate()方法中編寫了此代碼,並且工作正常。 – farshid83

0

我認爲你可以使用TextChangedListener:

editText1.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

      } 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 

      } 

      @Override 
      public void afterTextChanged(Editable s) { 
       imageView1.setVisibility(View.VISIBLE); 
       imageView2.setVisibility(View.INVISIBLE); 
      } 
     }); 


editText2.addTextChangedListener(new TextWatcher() { 
       @Override 
       public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

       } 

       @Override 
       public void onTextChanged(CharSequence s, int start, int before, int count) { 

       } 

       @Override 
       public void afterTextChanged(Editable s) { 
        imageView1.setVisibility(View.INVISIBLE); 
        imageView2.setVisibility(View.VISIBLE); 
       } 
      }); 

我希望它可以幫助你。