【问题标题】:How to clear the string in the editText when clicking on it [duplicate]单击时如何清除editText中的字符串[重复]
【发布时间】: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());
            }
        });
    }
}

【问题讨论】:

    标签: java android if-statement android-edittext


    【解决方案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"
        

        【讨论】:

          猜你喜欢
          • 2017-10-29
          • 2017-05-17
          • 1970-01-01
          • 1970-01-01
          • 2011-07-16
          • 2015-06-07
          • 1970-01-01
          • 2022-12-20
          • 2021-08-13
          相关资源
          最近更新 更多