package com.duckcom.duckcal.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import com.duckcom.duckcal.R;
public class FragmentDialog extends DialogFragment {
private Fragment fragment;
public FragmentDialog() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog, container, false);
Bundle args = getArguments();
String value = args.getString("key");
fragment = getActivity().getSupportFragmentManager().findFragmentByTag("tag");
if (fragment != null) {
DialogFragment dialogFragment = (DialogFragment) fragment;
dialogFragment.dismiss();
}
return view;
}
}
FragmentDialog.java 입니다.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="400dp"
android:orientation="vertical"
android:gravity="center">
<TextView
android:text="DialogFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</layout>
<dialog.xml 입니다>
프래그먼트에서 커스텀 다이얼로그 띄우기를 하고 싶습니다.
인터넷에 있는 코드를 써서 실행했는데 아래와 같은 에러 로그가 뜹니다.
(라이브러리 에러는 빼고 적었습니다.)
at com.duckcom.duckcal.Fragment.FragmentDialog.onCreateView(FragmentDialog.java:23)
해당 코드도 붙입니다.
View view = inflater.inflate(R.layout.dialog, container, false);
대체 왜 에러가 나는 걸까요?
감사합니다.
<에러 로그 첨부합니다>
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.duckcom.duckcal, PID: 7296
android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class layout
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class layout
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.layout" on path: DexPathList[[zip file "/data/app/com.duckcom.duckcal-sJgYoaUNC3hnyK4-R5m58A==/base.apk"],nativeLibraryDirectories=[/data/app/com.duckcom.duckcal-sJgYoaUNC3hnyK4-R5m58A==/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.view.LayoutInflater.createView(LayoutInflater.java:606)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:703)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:68)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at com.duckcom.duckcal.Fragment.FragmentDialog.onCreateView(FragmentDialog.java:23)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)