Ошибка Java в учебнике Google Android "HelloFormStuff" - PullRequest
3 голосов
/ 25 декабря 2009

Я неофит Ява. Я следовал за учебником на http://developer.android.com/resources/tutorials/views/hello-formstuff.html, чтобы добавить кнопку и обработчик OnClick, скопировав код учебника в мою:

public class FormStuff extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final ImageButton button = (ImageButton) findViewById(R.id.android_button);
        button.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // Perform action on clicks
                Toast.makeText(FormStuff.this, "Beep Bop", Toast.LENGTH_SHORT).show();
            }
        });
        }
}

В Eclipse это приводит к двум ошибкам

Description Resource    Path    Location    Type
The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (new DialogInterface.OnClickListener(){})  FormStuff.java  /FormStuffExample/src/com/example/formstuffexample  line 17 Java Problem
The type new DialogInterface.OnClickListener(){} must implement the inherited abstract method DialogInterface.OnClickListener.onClick(DialogInterface, int) FormStuff.java  /FormStuffExample/src/com/example/formstuffexample  line 17 Java Problem

Что я делаю не так? Спасибо!

Ответы [ 2 ]

9 голосов
/ 25 декабря 2009

Основано исключительно на сообщениях об ошибках ...

Вы используете (неявно) неправильный OnClickListener интерфейс / класс. Похоже, есть два, View.OnClickListener и DialogInterface.OnClickListener.

Решение состоит в том, чтобы полностью квалифицировать ваш анонимный OnClickListener.

button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on clicks
                Toast.makeText(FormStuff.this, "Beep Bop", Toast.LENGTH_SHORT).show();
            }
        });
1 голос
/ 14 августа 2010

Спасибо, Кевин. Следуя твоему предложению, я тоже исправил свою ошибку. Затмение предлагает слишком много подсказок, и новичок, как я, понятия не имеет, что мне выбрать. Позже я нашел другое решение. Если Eclipse не может импортировать необходимое, когда вы нажмете O, вам следует добавить его вручную:

import android.view.View.OnClickListener;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...