#java #android
#java #Android
Вопрос:
По какой-то причине Eclipse не нравится вызов super (context, attrs, defStyle), но он доволен другими вызовами super. Ошибка заключается в том, что «Конструктор LinearLayout(Context, AttributeSet, int) не определен».
Я не думаю, что проблема в самом этом коде, но в чем-то другом в настройках проекта или что-то в этом роде, поскольку я адаптировал почти идентичный код из примера, который делал то же самое, но для RelativeLayout, который отлично работал в моей настройке Eclipse в тестовом проекте.
Пожалуйста, помогите 🙂
public class MyLinearLayout extends LinearLayout {
public MyLinearLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
myInit();
}
public MyLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
myInit();
}
public MyLinearLayout(Context context, int checkableId) {
super(context);
myInit();
}
Ответ №1:
Согласно этим javadocs, ошибка полностью верна.
LinearLayout
у него нет этого конструктора. Это два допустимых конструктора:
LinearLayout(Context context)
LinearLayout(Context context, AttributeSet attrs, Map inflateParams)
Комментарии:
1. Спасибо, это, безусловно, объяснило бы это! Отсюда возникает вопрос — почему ссылка , похоже, противоречит опубликованным вами javadocs?
2. Хороший вопрос, Джодес; Мне самому было интересно это — хотя, вот еще что — сайт разработчиков Android (ваша ссылка), кажется, говорит, что для третьего конструктора требуется уровень API 11. Какая версия SDK у вас установлена / на которую вы ориентируетесь?
3. А, ладно, я нацеливался на уровень 7 🙂
4. Извините — мой google-foo, по-видимому, был слабым. Однако на странице, на которую вы ссылаетесь, в крайнем правом углу списка конструкторов, есть ссылка на рассматриваемый конструктор, начиная с: Уровень API 11 . Щелчок по нему показывает, что этот конструктор есть только в Andriod 3.0. Я собираюсь держать пари, что это не та версия, которую вы используете.
Ответ №2:
http://developer.android.com/reference/android/widget/LinearLayout.html
Согласно сайту разработчика, конструктор LinearLayout (context, attrs, defStyle) доступен только в версии API 11, поэтому он не будет работать в более ранних версиях.