#java #android
#java #Android
Вопрос:
Все мои ошибки в основном связаны с объявлениями buttonEntry, buttonMail и buttonSettings в setonclicklistener. Ошибки:
- Ошибка: (26, 63) ошибка: не удается найти надстройку класса символов
- Ошибка: (23, 65) ошибка: не является абстрактной и не переопределяет абстрактный метод onClick (View) в OnClickListener
- Ошибка: (29, 22) ошибка: несовместимые типы: неожиданное возвращаемое значение
- Ошибка: (24, 11) ошибка: метод не переопределяет и не реализует метод из супертипа
Кто-нибудь может помочь решить эту проблему? Я все еще новичок, и я понятия не имею, почему он выдает так много ошибок. Кроме того, если я попытаюсь включить мой main_menu.xml android: onClick=»methodName», мое приложение перестает отвечать, когда я открываю его на эмуляторе, без каких-либо ошибок при сборке.
Button buttonEntry;
Button buttonMail;
Button buttonSettings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonEntry = (Button)findViewById(R.id.action_add_entry);
buttonEntry.setOnClickListener(new View.OnClickListener() {
@Override
public void OnClick(View v) {
Intent entry = new Intent(MainActivity.this, AddEntry.class);
startActivity(entry);
setContentView(R.layout.newentry);
return true;
}
});
buttonMail = (Button)findViewById(R.id.action_add_email);
buttonMail.setOnClickListener(new View.OnClickListener() {
@Override
public void OnClick(View v) {
Intent mail = new Intent(MainActivity.this, AddMail.class);
startActivity(mail);
setContentView(R.layout.newmail);
return true;
}
});
buttonSettings = (Button)findViewById(R.id.action_settings);
buttonSettings.setOnClickListener(new View.OnClickListener() {
@Override
public void OnClick(View v) {
Intent settings = new Intent(MainActivity.this, AppSettings.class);
startActivity(settings);
setContentView(R.layout.settings);
return true;
}
});
}
Activity_Manifest, вот 3 действия, которые я добавил. Их имена выделены красным цветом.
<activity android:name=".AddEntry"></activity>
<activity android:name=".AddMail"></activity>
<activity android:name=".AppSettings"></activity>
Комментарии:
1. можете ли вы опубликовать activity_main.xml , также почему вы вызываете setContentView сразу после запуска нового действия?
Ответ №1:
Попробуйте это:
Button buttonEntry;
Button buttonMail;
Button buttonSettings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonEntry = (Button)findViewById(R.id.action_add_entry);
buttonEntry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent entry = new Intent(MainActivity.this, AddEntry.class);
startActivity(entry);
setContentView(R.layout.newentry);
}
});
buttonMail = (Button)findViewById(R.id.action_add_email);
buttonMail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent mail = new Intent(MainActivity.this, AddMail.class);
startActivity(mail);
setContentView(R.layout.newmail);
}
});
buttonSettings = (Button)findViewById(R.id.action_settings);
buttonSettings.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent settings = new Intent(MainActivity.this, AppSettings.class);
startActivity(settings);
setContentView(R.layout.settings);
}
});
}
Ошибка: (26, 63) ошибка: не удается найти надстройку класса символов
Если addEntry находится в другом .java, вам нужно импортировать поверх вашего файла, например:
import your.package.name.AddEntry;
Комментарии:
1. Решены большинство проблем, спасибо, но осталась только 1 ошибка, та, что с символами. Я пытался использовать импорт package.name . addEntry;, но я все равно получил ту же ошибку. Я обновил свой основной пост действиями, которые я добавил в activity main, получил их имена красным, я не знаю почему.
Ответ №2:
Пожалуйста, проверьте содержимое вашего файла макета активности activity_main.xml
. У него должны быть Button
элементы с id
атрибутом, установленным в соответствующее значение.
Например, в вашем случае для правильной работы следующей строки кода
buttonEntry = (Button)findViewById(R.id.action_add_entry);
вам нужно добавить в activity_main.xml
элемент Button, который будет выглядеть примерно так
...
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add"
android:id="@ id/action_add_entry" />
...
Обратите внимание на android:id
атрибут.
Комментарии:
1. Это не его проблема. Отсутствующий идентификатор вызовет исключение NullException, он его еще не получил.