У меня есть фрагмент карты внутри действия Drawer, я просто добавил флажок к макету mapFragment примерно так:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".mapFragment">
<!-- TODO: Update blank fragment layout -->
<fragment
android:id="@+id/map1"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:tag="home"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:context="com.tesseract.psiclops.zero.Main" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="87dp"
android:background="@drawable/edittext_designtst"
android:ems="10"
android:hint=" ■ ¿Qué buscas hoy?"
android:inputType="textPersonName"
android:textColor="#806b63"
android:textColorHint="#806b63"
android:textColorLink="@color/colorPrimary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<CheckBox
android:id="@+id/follow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:checked="true"
android:onClick="followIO"
android:text="Sígueme"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
Я указал метод onClick «followIO», чтобы каждый раз вызывать / снимать флажок, чтобы пользователь мог активировать / деактивировать обновления камеры на карте, например, «Следуй за мной».
Я объявил метод внутри кода фрагмента карты с момента его связанной активности (верно?)
public class mapFragment extends Fragment implements OnMapReadyCallback, LocationListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
.
.
.
public void followIO(View view){
boolean checked = ((CheckBox)view).isChecked();
if(checked){
//Updates on
}else{
//Updates off
}
}
}
но я все еще получаю предупреждение: «Не удается разрешить символ followIO».
Когда я пытаюсь снять флажок, приложение вылетает и выдает это исключение:
E / AndroidRuntime: FATAL EXCEPTION: main
Процесс: com.tesseract.psiclops.zerov2, PID: 5473
java.lang.IllegalStateException: не удалось найти метод followIO (представление) в родительском или родительском контексте для android: атрибут onClick, определенный для класса представления android.support.v7.widget.AppCompatCheckBox с идентификатором follow '
на android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.resolveMethod (AppCompatViewInflater.java:327)
на android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick (AppCompatViewInflater.java:284)
на android.view.View.performClick (View.java:6256)
на android.widget.CompoundButton.performClick (CompoundButton.java:134)
на android.view.View $ PerformClick.run (View.java:24701)
на android.os.Handler.handleCallback (Handler.java:789)
на android.os.Handler.dispatchMessage (Handler.java:98)
на android.os.Looper.loop (Looper.java:164)
на android.app.ActivityThread.main (ActivityThread.java:6541)
в java.lang.reflect.Method.invoke (родной метод)
на com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767)
Я все еще довольно новичок на Android и не смог найти другого решения своей проблемы, поэтому я надеюсь, что кто-то может помочь, Заранее спасибо!