での活動にバインド私は私のプロジェクトの一つでData Binding Libraryを使用したいが、私はMapFragmentを持って活動にエラーを取得しています。コードは完璧に動作libreryデータバインディングを使用していないデータはMapFragment
私のxml main_activityファイル:
<layout 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">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.project.activities.MainActivity" />
</RelativeLayout>
</layout>
および関連baseActivity
public abstract class BaseActivity extends AppCompatActivity {
private ActivityMainBinding binding;
private Toolbar toolbar;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, getContentView());
setContentView(getContentView());//Crashes
getPresenter();
configureToolbar();
Log.d(Constans.LOG_TAG,"On create");
}
private void configureToolbar() {
toolbar = binding.myToolbar;
if (toolbar != null) {
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
@Override
protected void onStop() {
super.onStop();
Log.d(Constans.LOG_TAG,"On Stop");
}
@Override
protected void onResume() {
super.onResume();
Log.d(Constans.LOG_TAG,"On resume");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
protected abstract int getContentView();
protected abstract void getPresenter();
}
そして、私が手にエラーがある:
javaの.lang.RuntimeException:アクティビティを開始できませんComponentInfo {com.project.activities.MainActivity}:android.view.InflateEx ception:バイナリXMLファイルライン#18:バイナリXMLファイルライン#18:クラスフラグメントを拡張するエラー android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2510)android.os.Handler.dispatchMessageでandroid.app.ActivityThread $ H.handleMessage(ActivityThread.java:1363) でandroid.app.ActivityThread.-wrap11(ActivityThread.java) で (Handler.java:102 java.lang.rでandroid.app.ActivityThread.main(ActivityThread.java:5461) でandroid.os.Looper.loop(Looper.java:148) で) eflect.Method.invoke(ネイティブメソッド) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) ) 原因:android.view.InflateException:バイナリXMLファイルライン#18:バイナリXMLファイルライン#18:android.view.LayoutInflater.inflateのクラスフラグメント を膨張させるエラー。android.viewの .LayoutInflater.inflate(LayoutInflater.java:423)android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)の とandroid.view.LayoutInflater.inflate(LayoutInflater.java:423)の (%)を返します。 Activity.java:6251)android.app.ActivityThread.handleLaunchActivityでandroid.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403) でandroid.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) で(ActivityThread。 Javaの:2510) android.app.ActivityThread.-wrap11(ActivityThread.java) でandroid.app.ActivityThread $ H.handでandroid.app.ActivityThread.mainでleMessage android.os.Looper.loop(Looper.java:148)でandroid.os.Handler.dispatchMessage(Handler.java:102)で(ActivityThread.java:1363) ( java.lang.reflect.MethodオブジェクトでActivityThread.java:5461) 。(ネイティブメソッド)
を呼び出すエラー自体は
setContentView(getContentView())にのonCreate(バンドルsavedInstanceState)方法です。
私は間違っていますか?
私はちょうどあなたが私にこの時間とのトンを保存言いたいです! –