Я пытаюсь реализовать пользовательский MapView. Внутри моей MapActivity (называемой mainmap) у меня есть внутренний класс, который расширяет MapView:
private class Lmapview extends MapView{
public Lmapview(Context context, AttributeSet attrs) {
super(context, attrs);
gestures = new GestureDetector(mainmap.this, new GestureListener(this));
}
public boolean OnTouchEvent(MotionEvent event){
return gestures.onTouchEvent(event);
}
}
У меня есть main.xml, отформатированный так, чтобы найти внутренний класс следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<view
xmlns:android="http://schemas.android.com/apk/res/android"
class="com.mondo.tbuddy.mainmap$Lmapview"
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey=*****
/>
Также в Androidmanifest.xml у меня есть соответствующая запись <uses-library android:name="com.google.android.maps"/>
.
Когда я пытаюсь запустить свое приложение, я получаю (среди прочего) в logcat:
ОШИБКА / AndroidRuntime (14999): вызвано
автор: android.view.InflateException:
Бинарный XML-файл, строка № 2: ошибка
раздувать класс
com.mondo.tbuddy.mainmap $ Lmapview
Это вызвано этой записью, которую я нахожу в logcat:
ОШИБКА / AndroidRuntime (14999): вызвано
автор: java.lang.NoSuchMethodException:
Lmapview (Context, AttributeSet)
Если я правильно понимаю, мое приложение падает, потому что Android говорит, что не может найти подходящий конструктор для моего пользовательского MapView (класс Lmapview). Однако, как вы можете видеть выше, он определен и соответствует сигнатуре, которую он ищет.
Может кто-нибудь подсказать мне?
Спасибо.