在Onclick事件..我有错误

时间:2013-02-16 07:36:34

标签: android onclick onclicklistener

public void clickImage(View v) {
        if (v.getId() == R.id.a_01_b) {
            Toast.makeText(this, "1", Toast.LENGTH_LONG).show();
        }
        else if (v.getId() == R.id.a_02_b) {
            Toast.makeText(this, "2", Toast.LENGTH_LONG).show();
        }
        else if (v.getId() == R.id.a_03_b) {
            Toast.makeText(this, "3", Toast.LENGTH_LONG).show();
        }
    }

我在mainactivity.java中这样写过..

并且,在XML中..我在每个ImageView中编写了android:onClick =“clickImage”。

但是我在这里写的第一句话就是这样的错误。

Multiple markers at this line
- Syntax error on token ")", ; expected
- Syntax error on token "(", ; expected
- void is an invalid type for the variable clickImage

..这个错误是什么?我必须做什么..? 我认为代码中没有错误..

请给我解决方案..

P.S。我清理了Project,但它也一样。

2 个答案:

答案 0 :(得分:0)

注意使用XML onClick,Android将仅在当前的Activity中查找onClick方法clickImage()。如果您正在使用片段,这一点很重要,因为即使您使用片段添加XML,Android也不会在用于添加XML的片段的.java文件中查找onClick方法。

因此,我们需要知道您是使用分段还是多活动呼叫

编辑>

你的xml没有错误,你的java活动似乎有错误,而且因为我没有你的java,我会给你一个独立于xml的解决方案

ImageView im;
im = (ImageView)findViewById(R.id.a_01_b);
im.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(this, "1", Toast.LENGTH_LONG).show();
            }
        });
你的xml中的

删除了这个

android:onClick="clickImage"  

编辑2

在你的java类的顶部放了这个:

import android.view.View.OnClickListener;
import android.widget.ImageView;

在您的代码处执行此操作:

ImageView im;
im = (ImageView)findViewById(R.id.a_01_b);
im.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(YourActivityName.this, "1", Toast.LENGTH_LONG).show();
            }
        });

而不是YourActivityName列出您的活动名称

答案 1 :(得分:0)

mainactivity.java中存在一些语法错误。也许你将clickImage方法放在另一个方法中。或者别的什么,如果没有看到完整的代码,就无法准确地说出来。