Столкнувшись с проблемой при реализации OnClickListener на Android - PullRequest
0 голосов
/ 12 сентября 2011

Я хочу реализовать прослушиватель для кнопки на моем главном экране.Мой код что-то вроде ниже

protected void onCreate(Bundle savedValues) {
    ...
    // Capture our button from layout
    Button button = (Button)findViewById(R.id.btnFinish);
    // Register the onClick listener with the implementation above
    button.setOnClickListener(mFinishListener);
    ...
}

private OnClickListener mFinishListener = new OnClickListener() {
    public void onClick(View v) {
      // do something when the button is clicked
    }
};

Но показывает мне ошибку следующим образом

The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (DialogInterface.OnClickListener)  MobileTrackerActivity.java  /MobileTracker/src/com/example/mobiletracker    line 37 Java Problem

Я понятия не имею, что делать.Пожалуйста, помогите.

Ответы [ 6 ]

2 голосов
/ 12 сентября 2011

По моему мнению, лучший способ реализовать событие «Нажатие» для кнопки.

Вместо того, чтобы применять OnClickListener к кнопке в вашей деятельности, вы можете назначить метод для вашей кнопки в макете XML, используяатрибут android: onClick.Например:

 <Button
     android:layout_height="wrap_content"
     android:layout_width="wrap_content"
     android:text="@string/self_destruct"
     android:onClick="selfDestruct" />

Теперь, когда пользователь нажимает кнопку, система Android вызывает метод selfDestruct (View) действия.Чтобы это работало, метод должен быть общедоступным и принимать View как единственный параметр.Например:

public void selfDestruct(View view) {
     // Kabloey
 }

Примечание. Приведенный выше код указан в Android SDK - кнопка .

2 голосов
/ 12 сентября 2011

Вы не используете правильный интерфейс для создания экземпляра переменной mFinishLinstener ...

Возможно, у вас есть импорт, указывающий DialogInterface, и это сбивает с толку представление.

Попробуйте указать View.OnClickListener явно.

private View.OnClickListener mFinishListener = new View.OnClickListener() {
    public void onClick(View v) {
      // do something when the button is clicked
    }
};
1 голос
/ 12 сентября 2011

попробуйте этот код :::

final Button button = (Button) findViewById(R.id.btnFinish);
         button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // Perform action on click
             }
         });
0 голосов
/ 12 сентября 2011

Вы также можете объявить onclick в xml.

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onclick="buttonClick" />

И в своем коде вы определите функцию как:

public void buttonClick(View view)
{
    // handle click
}
0 голосов
/ 12 сентября 2011

Вы также можете использовать как ниже код ..

Button button = (Button)findViewById(R.id.btnFinish);

button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)
{
   //Write Your code here
}
});
0 голосов
/ 12 сентября 2011

Просто попробуйте это как:

 button.setOnClickListener(new OnClickListener() {  
@Override   
 public void onClick(View v) {
      // do something when the button is clicked
    }
};
...