Java onclick方法不存在错误?

Java onclick方法不存在错误?,java,android,Java,Android,这是错误的描述 onClick处理程序名称中不应该有空格onClick属性值应该是该视图上下文中要在单击视图时调用的方法的名称。此名称必须对应于只接受一个View类型参数的公共方法。必须是字符串值,使用“\;”转义unicode字符的“\n”或“\uxxx”等字符 btnClick = (Button) findViewById(R.id.button2); txtBox1 = (EditText) findViewById(editText9); txtBox2 = (EditText) fi

这是错误的描述

onClick处理程序名称中不应该有空格onClick属性值应该是该视图上下文中要在单击视图时调用的方法的名称。此名称必须对应于只接受一个View类型参数的公共方法。必须是字符串值,使用“\;”转义unicode字符的“\n”或“\uxxx”等字符

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);
            }
        });
btnClick=(按钮)findviewbyd(R.id.button2);
txtBox1=(EditText)findViewById(editText9);
txtBox2=(EditText)findViewById(editText10);
btnClick.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串input1=txtBox1.getText().toString();
byte[]bytes=input1.getBytes();
最终StringBuilder二进制文件=新StringBuilder();
for(字节b:字节){
int val=b;
对于(int i=0;i<8;i++){
binary.append((val&128)==0?0:1);

val您使用了相同的名称
b单击不同的3按钮。这可能是问题所在。请使用不同的名称。

您尚未关闭OnClickListener界面。 改变

btnClick.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串input1=txtBox1.getText().toString();
byte[]bytes=input1.getBytes();
最终StringBuilder二进制文件=新StringBuilder();
for(字节b:字节){
int val=b;
对于(int i=0;i<8;i++){
binary.append((val&128)==0?0:1);

val只需对
xml
中的不同按钮
id
使用
不同的按钮变量
,不要使用相同的按钮名称调用
onClick
方法。
例如:

Button btnClick,btnClick1,btnClick2;

有关更多信息,请访问此

您需要创建不同的按钮变量名称和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);
            }
        });
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mContext=这个;
mActivity=这个;
btnClick1=(按钮)findViewById(R.id.button1);
btnClick2=(按钮)findViewById(R.id.button2);
btnClick3=(按钮)findViewById(R.id.button3);
btnClick4=(按钮)findViewById(R.id.button4);
txtBox1=(EditText)findViewById(editText9);
txtBox2=(EditText)findViewById(editText10);
btnClick1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串input1=txtBox1.getText().toString();
byte[]bytes=input1.getBytes();
最终StringBuilder二进制文件=新StringBuilder();
for(字节b:字节){
int val=b;
对于(int i=0;i<8;i++){
binary.append((val&128)==0?0:1);

val向我们展示了完整的stacktrace。一件奇怪的事。最后,您在同一个
按钮上调用了
btnClick.setOnClickListener
两次。问题来自于您的一个布局XML文件,而不是Java代码。您在某个东西上有一个
android:onClick
属性,您为它设置的值作为
活动中的有效方法
。您好,我已尝试此方法,但相同的错误仍然存在…感谢您的帮助我已尝试此方法,但相同的错误仍然存在…感谢您的帮助我已完成此操作,但错误仍然存在感谢您的帮助
Button btnClick,btnClick1,btnClick2;
 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);
            }
        });
}