в событии Onclick. У меня ошибка

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. Я написал android:onClick="clickImage" в каждом ImageView.

Но он делает такую ​​​​ошибку в первом предложении, которое я написал здесь.

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 , но это то же самое.


person Alex-Hyun    schedule 16.02.2013    source источник
comment
Вы хотите сохранить onclick в xml или я могу дать вам решение по активности?   -  person William Kinaan    schedule 16.02.2013
comment
не могли бы вы показать мне свои xml пожалуйста   -  person William Kinaan    schedule 16.02.2013
comment
Как выглядит строка перед методом clickImage?   -  person ellak    schedule 16.02.2013


Ответы (2)


Обратите внимание, что с XML onClick Android будет искать метод onClick clickImage() только в текущем действии. Это важно помнить, если вы используете фрагменты, так как даже если вы добавите XML с помощью фрагмента, Android не будет искать метод onClick в файле .java фрагмента, используемого для добавления XML.

Поэтому нам нужно знать, используете ли вы фреймы или мультиактивный вызов

Изменить>

нет ошибки в вашем 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 поставьте название вашей деятельности

person William Kinaan    schedule 16.02.2013
comment
Здесь слишком долго писать. - person Alex-Hyun; 16.02.2013
comment
У меня нет других решений, чтобы показать вам мой XML, поэтому я даю вам ссылку. - person Alex-Hyun; 16.02.2013
comment
кажется, в xml нет ошибки, почему бы вам не попробовать установить onclicklistener на java? это тоже легко - person William Kinaan; 16.02.2013
comment
Можете ли вы представить классный сайт или другой сайт, который дает мне решения для настройки onclicklistener на java и настройки xml? - person Alex-Hyun; 16.02.2013
comment
У вас есть ошибка в вашем Java-коде. Покажите нам еще немного, и мы сможем помочь. - person ellak; 16.02.2013
comment
спасибо за код .. и когда я использую этот код в java, мне нужно написать что-то еще в моем xml? - person Alex-Hyun; 16.02.2013
comment
Нет, мне очень жаль, потому что вы мне так помогаете.. но у меня тоже есть ошибка, и я тоже не знаю, как решить проблему.. Вот ссылка. wemakeucc.com/java_error.jpg - person Alex-Hyun; 16.02.2013
comment
проверьте мой edit 2, вы должны импортировать классы, как я, и вместо YourActivityName вы должны указать свое настоящее имя деятельности - person William Kinaan; 16.02.2013

У вас есть синтаксическая ошибка в mainactivity.java. Возможно, вы поместили метод clickImage в другой метод. Или что-то еще, нельзя точно сказать, не видя полного кода.

person ellak    schedule 16.02.2013