我有两个EditText小部件(editText1和editText2)都有一个按钮填充的值,光标聚焦在editText1 上。我在editText上都有监听器,如下面的代码片段所示。使用光标在editText1 上,需要两次点击/触摸才能清除editText2 。如何通过单击/触摸来清除editText2?
tipPercent.setOnClickListener(new EditText.OnClickListener(){
public void onClick(View view){
try{
tipPercent.setText("");
}
splitTip.setOnClickListener(new EditText.OnClickListener(){
public void onClick(View view){
try{
splitTip.setText("");
}
EditText和点击事件的屏幕截图
答案 0 :(得分:3)
试试这个..
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
//clear the edittext
} else {
//set the value when hasFocus is not
}
}
});
答案 1 :(得分:2)
试试这个:
tipPercent.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
splitTip.setText("");
}
}
});
splitTip.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
tipPercent.setText("");
}
}
});
答案 2 :(得分:1)
如果我理解你的问题
你关注焦点时需要清除setOnFocusChangeListener
吗?然后,当editText
获得焦点或失去焦点时,您需要使用editText
,您可以清除editText2.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
//clear editText when editext get focus
Toast.makeText(getApplicationContext(), "Got the focus", Toast.LENGTH_LONG).show();
} else {
//clear editText when editext lost focus
Toast.makeText(getApplicationContext(), "Lost the focus", Toast.LENGTH_LONG).show();
}
}
});
WebView
答案 3 :(得分:0)
试试这个:
/*EditText1*/
tipPercent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tipPercent.setText("");
}
});
/*EditText2*/
splitTip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
splitTip.setText("");
}
});
onFocusListener将起作用,因为这将允许您一键清除文本,因为onClickListener不是为此目的而制作的 希望它有所帮助
答案 4 :(得分:0)
试试这个// Kotlin
private fun editTextClear(currentET: EditText, targetET: EditText) {
currentET.setFocusableInTouchMode(true)
currentET.setFocusable(true)
targetET.clearComposingText()
targetET.setFocusable(false)
}
//现在在onClick()
上调用此方法 first_et.setOnClickListener {
editTextClear(first_et, second_et)
}
second_et.setOnClickListener {
editTextClear(second_et, first_et)
}
如果您尝试为focusable="false"
设置second_et
,则可以从第一次单击second_et到第一次清空first_et
希望这能解决您的问题