2013-03-25 2 views
2

Я официально схожу с ума, почему это не работает должным образом. Я пробовал почти все, но это не вызывает событие onclick правильно?Android onclick event?

Это мое сообщение об ошибке, что я получаю после знака =

The type new DialogInterface.OnClickListener(){} must implement the 
inherited abstract method 
DialogInterface.OnClickListener.onClick(DialogInterface, int) 

, и говорю мне, чтобы добавить невыполненные пункты. Но я думал, что это было реализовано с помощью View v?

Может ли кто-нибудь помочь мне понять, почему это не работает должным образом?

Даже если я реализую прослушиватель onclick в начале, он все еще не работает? Я весьма озадачен?

<ImageView 
    android:id="@+id/eraserBtn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dip" 
    android:layout_weight="1" 
    android:background="@drawable/selector_tool_bg" 
    android:src="@drawable/eraser" /> 


      mEraserBtn = (ImageView) findViewById(R.id.eraserBtn); 

      mEraserBtn.setOnClickListener(new OnClickListener){ 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        int nBtnID = mEraserBtn.getId(); 
        // If the mode is not changed, open the setting view. If the mode is same, close the setting view. 
        if(nBtnID == mEraserBtn.getId()){ 
         if(mSCanvas.getCanvasMode()==SCanvasConstants.SCANVAS_MODE_INPUT_ERASER){ 
          mSCanvas.toggleShowSettingView(SCanvasConstants.SCANVAS_SETTINGVIEW_ERASER); 
         } 
         else{ 
          mSCanvas.setCanvasMode(SCanvasConstants.SCANVAS_MODE_INPUT_ERASER); 
          mSCanvas.showSettingView(SCanvasConstants.SCANVAS_SETTINGVIEW_ERASER, false); 
         } 
        } 
       } 
       }); 
+1

Задайте свой вопрос для дальнейшего использования, и если другие люди столкнутся с одной проблемой. – Cheesebaron

ответ

3

Тип новый DialogInterface.OnClickListener() {} должен реализовывать унаследовала абстрактный метод DialogInterface.OnClickListener.onClick (DialogInterface, Int)

Вы импортируемые неправильный OnClickListener. Ваш импорт должен быть

import android.view.View.OnClickListener; 

и не

import android.content.DialogInterface.OnClickListener; 

Оба имеют одинаковое имя (легко сделать ошибку), но они разные. Быть осторожен.

+0

Спасибо, я знаю, что что-то не так просто не могло понять. –

+0

@RichTalcik добро пожаловать. Если ответ работает так, что другие разработчики принимают ответ как рабочий :) thnaks – Sajmon

0

Возможно, у вас есть еще один ClickListener для диалога в вашем приложении, или вы импортируете неправильный ClickListener, попытайтесь сделать это и испытание, если оно:

  mEraserBtn.setOnClickListener(new android.view.View.OnClickListener){ 

Если это работает, то нужно организовать импорт, как упоминалось ранее