输入时在EditText中清除文本

loc*_*boy 81 android android-edittext

我正在尝试设置和onclicklistener,以便当我在edittext元素中单击时,它将清除其当前内容.这里有什么问题吗?当我编译这段代码时,我得到一个强制退出和ActivityManager:无法调度DDM块4d505251:没有处理程序定义的错误.

public class Project extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    EditText editText = (EditText)findViewById(R.id.editText1);
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        editText.setOnClickListener(this);

        setContentView(R.layout.main);

    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        editText.setText("");
    }
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*kyi 175

您也可以使用下面的代码

editText.getText().clear();
Run Code Online (Sandbox Code Playgroud)

  • 阿里,你是对的.但我们先调用方法getText().它返回我们的Editable实例,它有方法clear(); (2认同)

Chi*_*rag 108

首先,您需要调用setContentView(R.layout.main)所有其他初始化.

请尝试以下代码.

public class Trackfolio extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    public EditText editText;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        editText = (EditText) findViewById(R.id.editText1);
        editText.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        editText.getText().clear(); //or you can use editText.setText("");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 嗨,我知道这是一个旧答案,但是您是唯一提到这两个选项的人(`.clear`或`.setText(“”)`)。有什么区别吗?我什么时候应该使用哪个或它们完全相同?谢谢。 (4认同)

小智 39

只需android:hint在EditText中使用该属性即可.当文本框为空且未聚焦时,此文本显示,但在选择EditText框时消失.


Ven*_*WAR 8

我们可以通过两种方式清除EditText数据

First One设置EditText为空,如下线所示

editext.setText("");
Run Code Online (Sandbox Code Playgroud)

第二个清除这样的EditText数据

editText.getText().clear();
Run Code Online (Sandbox Code Playgroud)

我建议第二种方式


Anj*_*nju 7

你的代码应该是:

    public class Project extends Activity implements OnClickListener {
            /** Called when the activity is first created. */
            EditText editText;
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);            

                setContentView(R.layout.main);
                editText = (EditText)findViewById(R.id.editText1);
                editText.setOnClickListener(this);            
            }

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                if(v == editText) {
                    editText.setText("");
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)


MaK*_*aKi 6

对于科特林:

创建两个扩展,一个用于 EditText,一个用于 TextView

编辑文本:

fun EditText.clear() { text.clear() }
Run Code Online (Sandbox Code Playgroud)

文本视图:

fun TextView.clear() { text = "" }
Run Code Online (Sandbox Code Playgroud)

并像这样使用它

myEditText.clear()

myTextView.clear()
Run Code Online (Sandbox Code Playgroud)