2016-02-26 65 views
0

我有兩個EditText s。我想先點擊第一個EditText s點擊清除第二個和第二個edittext點擊清除第一個。所以我試過OnClickListenerOnTouchListener。但它不能正常工作。Edittext Focus並點擊

et_email.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if (!(et_email.getText().toString().equalsIgnoreCase("") && et_mobile.getText().toString().equalsIgnoreCase(""))) { 
        if (MotionEvent.ACTION_UP == event.getAction()) { 
         et_mobile.setText(""); 
         et_mobile.setFocusableInTouchMode(true); 
         et_mobile.setFocusable(true); 
         et_mobile.requestFocus(); 
        } 
        return true; // return is important... 
       } else 
        return false; 
      } 
     }); 
     et_mobile.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if (!(et_email.getText().toString().equalsIgnoreCase("") && et_mobile.getText().toString().equalsIgnoreCase(""))) { 
        if (MotionEvent.ACTION_UP == event.getAction()) { 
         et_email.setText(""); 
         et_mobile.setFocusableInTouchMode(true); 
         et_mobile.setFocusable(true); 
         et_mobile.requestFocus(); 
        } 
        return true; // return is important... 
       } 
       else 
        return false; 
      } 
     }); 

但問題是,重點是沒有設置第一次觸摸,而點擊並無法清除EditText

+0

發佈你的代碼.. – sasikumar

+0

你的意思是「它不能正常工作」。 – Jas

+0

對Native方法和變量使用代碼格式。它有助於理解這個問題。 –

回答

1

首先添加到您的EDITTEXT佈局:

android:focusableInTouchMode="false" 

沒有這一行,在EditText將反應觸摸模式,只有聽你的onClick()你第二次單擊EditText吧。 這將在第一次禁用觸摸模式EditText,和火災的onClick()

focusableInTouchMode

注: Boolean控制視圖是否可以採取焦點,而在觸摸模式。如果對於視圖來說這是正確的,那麼該視圖可以在被點擊時獲得焦點,並且如果另一個視圖被點擊而沒有將該屬性設置爲真,焦點可以保持焦點。

比操作如下: EditText1

EditText et_email = (EditText) findViewById(R.id.yourEditText1); 
et_email.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     //do this 
     et_mobile.setText(""); 

     //or this 
     et_mobile.getText().clear();   
    } 
}); 

EditText2

EditText et_mobile = (EditText) findViewById(R.id.yourEditText2); 
et_mobile.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     //do this 
     et_email.setText(""); 

     //or this 
     et_email.getText().clear();   
    } 
}); 

這應該可以幫助你出來。

0

你正在清理第一個一個接觸的第一個,改變你的變量名的第一個聽衆這樣

if (!(et_email.getText().toString().equalsIgnoreCase("") && et_mobile.getText().toString().equalsIgnoreCase(""))) { 
    if (MotionEvent.ACTION_UP == event.getAction()) { 
     et_mobile.setText(""); 
     et_email.setFocusableInTouchMode(true); 
     et_email.setFocusable(true); 
     et_email.requestFocus(); 
    } 
    return true; // return is important... 
} else 
0

我希望這個代碼可以幫助你(我的作品)

edit1 = (EditText) findViewById(R.id.edit1); 
    edit2 = (EditText) findViewById(R.id.edit2); 



    edit1.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      edit2.setText(""); 
     } 
    }); 

    edit2.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      edit1.setText(""); 
     } 
    });