我一直无法解决方法'setText(java.lang.string)错误

时间:2017-09-18 16:38:32

标签: java android

我似乎无法让我的设置文本行工作。我正在尝试按下一个可以清除文本视图的按钮。

            btnClick = (Button) findViewById(R.id.button4);
            btnClick.setOnClickListener(new View.OnClickListener(){

                @Override
                public void onClick(View v){

                    txtBox1 = (EditText) findViewById(editText9);
                    editText9.setText("");
                    txtBox2 = (EditText) findViewById(editText10);
                    editText10.setText("");

                }
            });

            btnClick = (Button) findViewById(R.id.button5);
            txtBox2 = (EditText) findViewById(editText10);

            btnClick.setOnClickListener(new View.OnClickListener(){

                @Override
                public void onClick(View v){

                    txtBox2 = (EditText) findViewById(editText10);
                    editText10.setText("");
                    String s = new String(binary);
                    txtBox1.setText(s);

3 个答案:

答案 0 :(得分:0)

我认为这里有两件事我认为可以提供帮助。首先是这一行:

txtBox2 = (EditText) findViewById(editText10);

您传递给findViewById()的参数可能是int类型。通常你会使用R.id常数,但是没有必要的技术原因。因此,我们可以得出结论editText10是一个int。

然后有这两行:

txtBox2 = (EditText) findViewById(editText10);
editText10.setText("");

这些内容就像您尝试清除txtBox2中的文字一样,但您在错误的变量上调用setText()方法。也许您可以将editText10.setText("")替换为txtBox2.setText("")

无论如何,您收到此错误的原因是您拨打setText()的对象不是TextView。我怀疑它是int,但它可能完全不同。

答案 1 :(得分:0)

您必须在使用之前初始化视图。否则,它将为null。 您已为其设置btnClick = (Button) findViewById(R.id.button5);后初始化onClickListener。它实际上不会起作用。

确保在使用之前初始化所有视图。

最佳实施方式是首先初始化所有视图然后再使用它

您的实施应该是这样的:

            txtBox2 = (EditText) findViewById(editText10);
            txtBox1 = (EditText) findViewById(editText9);
            btnClick = (Button) findViewById(R.id.button5);

              btnClick.setOnClickListener(new View.OnClickListener(){
                    @Override
                    public void onClick(View v){ 
                        editText9.setText("");
                        editText10.setText("");
                    }
                });

                btnClick.setOnClickListener(new View.OnClickListener(){
                    @Override
                    public void onClick(View v){
                        editText10.setText("");
                        String s = new String(binary);
                        txtBox1.setText(s);

答案 2 :(得分:-1)

您正在清除编辑文本而不是textView

尝试txtBox2.getText().clear();