Я изучаю андроид и сейчас занимаюсь калькулятором. Я уже сделал часть xml, где я поместил кнопки И я пытаюсь закончить файл Java, который является кодом, который заставляет калькулятор работать
НО в файле Java у меня есть эта ошибка: Ошибка: (22, 64) ошибка: не удается найти класс символов OnClickListener
И я не знаю, что делать: c Я все еще учусь, я видел, что нужно поставить
public class MainActivity extends ActionBarActivity implements View.OnClickListener {
Но я не понимаю, что это, и не знаю, приведет ли это к ошибке в калькуляторе.
Это файл Java (MainActivity)
package com.example.glow.pruebas;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button n0 = (Button) findViewById(R.id.B0);
n0.setOnClickListener(this);
Button n1 = (Button) findViewById(R.id.B1);
n1.setOnClickListener(this);
Button n2 = (Button) findViewById(R.id.B2);
n2.setOnClickListener(this);
Button n3 = (Button) findViewById(R.id.B3);
n3.setOnClickListener(this);
Button n4 = (Button) findViewById(R.id.B4);
n4.setOnClickListener(this);
Button n5 = (Button) findViewById(R.id.B5);
n5.setOnClickListener(this);
Button n6 = (Button) findViewById(R.id.B6);
n6.setOnClickListener(this);
Button n7 = (Button) findViewById(R.id.B7);
n7.setOnClickListener(this);
Button n8 = (Button) findViewById(R.id.B8);
n8.setOnClickListener(this);
Button n9 = (Button) findViewById(R.id.B9);
n9.setOnClickListener(this);
Button coma = (Button) findViewById(R.id.Bcoma);
coma.setOnClickListener(this);
Button igual = (Button) findViewById(R.id.Bigual);
igual.setOnClickListener(this);
Button suma = (Button) findViewById(R.id.B6sumar);
suma.setOnClickListener(this);
Button resta = (Button) findViewById(R.id.B5restar);
resta.setOnClickListener(this);
Button mul = (Button) findViewById(R.id.Bmult);
mul.setOnClickListener(this);
Button division = (Button) findViewById(R.id.Bdividir);
division.setOnClickListener(this);
Button raiz = (Button) findViewById(R.id.raiz);
raiz.setOnClickListener(this);
Button elevado = (Button) findViewById(R.id.BElevado);
elevado.setOnClickListener(this);
Button DEL = (Button) findViewById(R.id.BDEL);
DEL.setOnClickListener(this);
Button AC = (Button) findViewById(R.id.BAC);
AC.setOnClickListener(this);
Button sin = (Button) findViewById(R.id.Bsin);
sin.setOnClickListener(this);
Button cos = (Button) findViewById(R.id.Bcos);
cos.setOnClickListener(this);
Button tan = (Button) findViewById(R.id.Btan);
tan.setOnClickListener(this);
Button secreto = (Button) findViewById(R.id.Bsecreto);
secreto.setOnClickListener(this);
}
@Override
public void onClick(View v) {
TextView pantalla = (TextView) findViewById(R.id.texto);
int seleccion = v.getId();
try {
switch (seleccion) {
case R.id.B0:
pantalla.setText("0");
break;
case R.id.B1:
pantalla.setText("1");
break;
case R.id.B2:
pantalla.setText("2");
break;
case R.id.B3:
pantalla.setText("3");
break;
case R.id.B4:
pantalla.setText("4");
break;
case R.id.B5:
pantalla.setText("5");
break;
case R.id.B6:
pantalla.setText("6");
break;
case R.id.B7:
pantalla.setText("7");
break;
case R.id.B8:
pantalla.setText("8");
break;
case R.id.B9:
pantalla.setText("9");
break;
case R.id.Bcoma:
pantalla.setText(",");
break;
case R.id.Bmult:
break;
case R.id.B5restar:
break;
case R.id.B6sumar:
break;
case R.id.Bdividir:
break;
case R.id.BAC:
break;
case R.id.Bsin:
break;
case R.id.Bcos:
break;
case R.id.Btan:
break;
}
}catch(Exception e){
pantalla.setText("error");
};
}
}
4 ответа
Глупая ошибка.
Измените свой агрегат с OnClickListener
на View.OnClickListener
.
Поскольку вы сказали, что не знаете, что он делает:
http://developer.android.com/reference/android/view/View.OnClickListener.html
Вы в основном пытаетесь реализовать интерфейс , чтобы получить доступ к его методу onClick(View v)
, в котором вы передаете View
в аргументе.
Реализовать View.onClickListener вместо OnClickListener
Как вы сказали, вам нужно добавить
public class MainActivity extends ActionBarActivity implements View.OnClickListener {
Итак, ваша проблема здесь: public class MainActivity extends ActionBarActivity implements OnClickListener
.
Измените эту строку на public class MainActivity extends ActionBarActivity implements View.OnClickListener
Вам не хватает View .OnClickListener и вы используете только OnClickListener Это решит вашу проблему;)
Ваша ошибка заключается в том, что вы реализовали DialogInterface.onClickListener , он не работает как простой прослушиватель кликов, но в вашем случае вам необходимо реализовать View.onClickListener
Ваш DialogInterface.onClickListener работает только с диалогом, а не с ВИДОМ и вы работаете над объектом просмотра, вот почему.
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.