Вопрос Java, но вопрос Android, вот почему:

1

Единственный доступный воспроизводимый пример, который я могу найти, чтобы поделиться с доской - это образец кода NotePad для Android, который загружается в проводник пакетов IDE в виде "NotesList".

Я хочу знать, почему в пакете NoteEditor.java LinedEditText (расширенный из EditText) нельзя переименовать? Другими словами, почему я не могу переписать этот расширенный класс, как, например, "Lined_EditText" в двух строках, где существует слово, в его имени класса и его конструкторе? Насколько я могу определить, это единственные места, где слова существуют во всем пакете.

(Существует org.hermit.android.widgets.LinedEditText в http://moonblink.googlecode.com/svn/trunk/HermitAndroid/doc/org/hermit/android/widgets/LinedEditText.html, но этот образец NotePad в Android SDK не" t импортирует этот класс. Образец импортирует только файл android.widget.EditText.)

Спасибо за любую помощь.

Теги:

2 ответа

1
Лучший ответ

Этот класс ссылается на файл макета, который описывает интерфейс - http://developer.android.com/resources/samples/NotePad/res/layout/note_editor.html

Если вы измените имя класса Java без имени файла макета, макет будет терпеть неудачу во время инфляции. Вы должны увидеть в журнале явное сообщение об ошибке, связанном с инфляцией, неспособное найти класс LinedEditText и какую строку это произошло.

Образец NotePad не импортирует класс LinedEditText, который вы ссылаетесь, потому что... ну, он реализует свой собственный LinedEditText прямо на коде. На самом деле источник, с которым вы ссылаетесь, вероятно, просто скопирован из образца NotePad.

  • 0
    Отлично, спасибо, мужик.
1

У меня нет примера для проверки, но если это основной класс в файле, он должен соответствовать имени файла.

Таким образом, вы можете переименовать его в Lined_EditText, если имя файла также переименовано в Lined_EditText.java.

Если вы используете Eclipse (или любую подходящую IDE), он должен позаботиться об этом для вас с опцией refactor в контекстном меню.

  • 0
    Спасибо за ответ, Аарон С. Я никогда не знал о рефакторе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню