onclick方法不存在错误?

时间:2017-12-09 02:49:46

标签: java android

这是错误的描述

onClick处理程序名称中不应有空格onClick属性值应该是此View视图中单击视图时调用的方法的名称。此名称必须对应于只接受View类型的一个参数的公共方法。必须是字符串值,使用' \;'逃避诸如' \ n'等人物或者' \ uxxxx'对于unicode角色。

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



btnClick.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        String input1 = txtBox1.getText().toString();
        byte[] bytes = input1.getBytes();
        final StringBuilder binary = new StringBuilder();
        for (byte b : bytes) {
            int val = b;
            for (int i = 0; i < 8; i++) {
                binary.append((val & 128) == 0 ? 0 : 1);
                val <<= 1;
            }
            binary.append(' ');
            txtBox2.setText(binary);
        }

btnClick = (Button) findViewById(R.id.button3);

        btnClick.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                    ClipboardManager clipboard = (ClipboardManager)              
getSystemService(Context.CLIPBOARD_SERVICE);
                String text = txtBox2.getText().toString();
                ClipData clip = ClipData.newPlainText("text", text);
                clipboard.setPrimaryClip(clip);
                Toast.makeText(getApplicationContext(), "Text Copied",
                        Toast.LENGTH_SHORT).show();

            }


        });


        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){

                txtBox2.setText("");
                txtBox1.setText("");
            }
        });

        btnClick.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){

                txtBox2.setText("");
                String s = new String(binary);
                txtBox1.setText(s);
            }
        });

4 个答案:

答案 0 :(得分:0)

您为不同的3个按钮使用了同名btnClick。可能这是问题所在。使用不同的名称。

答案 1 :(得分:0)

您尚未关闭OnClickListener接口。 改变

btnClick.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        String input1 = txtBox1.getText().toString();
        byte[] bytes = input1.getBytes();
        final StringBuilder binary = new StringBuilder();
        for (byte b : bytes) {
            int val = b;
            for (int i = 0; i < 8; i++) {
                binary.append((val & 128) == 0 ? 0 : 1);
                val <<= 1;
            }
            binary.append(' ');
            txtBox2.setText(binary);
        }

btnClick.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        String input1 = txtBox1.getText().toString();
        byte[] bytes = input1.getBytes();
        final StringBuilder binary = new StringBuilder();
        for (byte b : bytes) {
            int val = b;
            for (int i = 0; i < 8; i++) {
                binary.append((val & 128) == 0 ? 0 : 1);
                val <<= 1;
            }
            binary.append(' ');
            txtBox2.setText(binary);
        }
}
});

请注意,我已添加

}     });  你的代码。在此行之后开始下一个代码。

答案 2 :(得分:0)

只需使用different Button variables代替ids中的不同按钮xml,不要使用相同的按钮名称来调用onClick方法。
例如:

Button btnClick,btnClick1,btnClick2;

有关详细信息,请访问此link.

答案 3 :(得分:0)

您需要创建不同的按钮变量名称和ID

例如

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mContext = this;
    mActivity = this;

    btnClick1 = (Button) findViewById(R.id.button1);
    btnClick2 = (Button) findViewById(R.id.button2);
    btnClick3 = (Button) findViewById(R.id.button3);
    btnClick4 = (Button) findViewById(R.id.button4);
    txtBox1 = (EditText) findViewById(editText9);
    txtBox2 = (EditText) findViewById(editText10);


    btnClick1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String input1 = txtBox1.getText().toString();
                byte[] bytes = input1.getBytes();
                final StringBuilder binary = new StringBuilder();
                for (byte b : bytes) {
                    int val = b;
                    for (int i = 0; i < 8; i++) {
                        binary.append((val & 128) == 0 ? 0 : 1);
                        val <<= 1;
                    }
                    binary.append(' ');
                    txtBox2.setText(binary);
                }
            }
        });
        btnClick2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ClipboardManager clipboard = (ClipboardManager)
                        getSystemService(Context.CLIPBOARD_SERVICE);
                String text = txtBox2.getText().toString();
                ClipData clip = ClipData.newPlainText("text", text);
                clipboard.setPrimaryClip(clip);
                Toast.makeText(getApplicationContext(), "Text Copied",
                        Toast.LENGTH_SHORT).show();

            }
        });
        btnClick3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                txtBox2.setText("");
                txtBox1.setText("");
            }
        });
        btnClick4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                txtBox2.setText("");
                String s = new String(binary);
                txtBox1.setText(s);
            }
        });
}

检查