单击时如何清除editText中的字符串[重复]

Posted

技术标签:

【中文标题】单击时如何清除editText中的字符串[重复]【英文标题】:How to clear the string in the editText when clicking on it [duplicate] 【发布时间】:2016-11-27 01:29:26 【问题描述】:

我真的希望你能帮助我。我在android中的应用程序在单击它时清除或擦除分配给主Activity上的editText对象的默认字符串,前提是该值等于我在R中分配的文本“在此处输入消息” .java 文件为“R.string.editTextOnStart”。代码如下:

    public class MainActivity extends AppCompatActivity 

    private String text;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final TextView textView = (TextView) findViewById(R.id.textView);
        final EditText editText = (EditText) findViewById(R.id.editText);

        editText.setText(R.string.editTextOnStart);

        textView.setText(R.string.textViewString);

        //if(editText.getText().toString().equals(String.valueOf(R.string.editTextOnStart))) 

            editText.setOnClickListener(new OnClickListener() 
                @Override
                public void onClick(View view) 
                    text = editText.getText().toString();

                    if(text.equals(R.string.editTextOnStart)) 
                        editText.getText().clear();
                    
                
            );
        //
        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new OnClickListener() 
            @Override
            public void onClick(View view) 
                textView.setText(editText.getText().toString());
            
        );
    

【问题讨论】:

【参考方案1】:

您可以使用hint 指定以下内容,而不是这样做

在您的布局 xml 文件中,在您的 EditText 下,添加此

android:hint="Enter your text here"

这将在您启动活动时出现在您的编辑文本中,并在用户单击它时消失

【讨论】:

感谢 Vidya Sagar 和 ShivBuyya,非常感谢 :)【参考方案2】:

最好将“在此处输入消息”作为布局提示

android:hint="Enter a message here"

【讨论】:

感谢 Vidya Sagar 和 ShivBuyya,非常感谢 :)【参考方案3】:

看起来您的代码几乎是完美的,但问题是您正在将变量text(它是一个字符串)直接与R.string.editTextOnStart(它是一个int)进行比较。要获得分配给R.string.editTextOnStart 的实际值,您需要使用[Context.getString(R.string.editTextOnStart)][1] 方法。所以你的代码应该是这样的:

...
editText.setOnClickListener(new OnClickListener() 
  @Override
  public void onClick(View view) 
   text = editText.getText().toString();

   if(text.equals(getApplicationContext().getString(R.string.editTextOnStart))) 
     editText.setText("");
   
 
);
...

【讨论】:

【参考方案4】:

Java

setHint()

-或-

XML

android:hint=""

见here for more info

【讨论】:

【参考方案5】:

把这个写在你的 onclick 监听器中

((EditText) findViewById(R.id.yoursXmlId)).setText("");

或者在你的 XML 布局中设置文本提示

android:hint="Enter Name"

【讨论】:

以上是关于单击时如何清除editText中的字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xamarin Android 中清除 EditText

如何默认隐藏键盘并仅在单击 EditText 时显示 [重复]

单击按钮时如何清除画布[重复]

如何清除随机 EditTexts?

Android:为EditText打开键盘时处理后退按钮单击

动态地将id分配给在kotlin中单击按钮时创建的edittext [重复]