gpt4 book ai didi

java - FragmentDirections 生成成功但无法解析符号

转载 作者:行者123 更新时间:2023-12-05 00:02:38 29 4
gpt4 key购买 nike

我在学习导航时发现了一个连线问题 Safe Args.IDE 无法解析符号“PermissionsFragmentDirections”,而 PermissionsFragmentDirections.java 文件已经在 .build 目录中生成。
PermissionsFragmentDirections
这是我的代码


import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment;
import androidx.navigation.Navigation;

import com.example.kotlinconver2java.R;

import org.jetbrains.annotations.NotNull;

public class PermissionFragment extends Fragment {
private final static int PERMISSIONS_REQUEST_CODE = 10;
private final static String PERMISSIONS_REQUIRED[]={Manifest.permission.CAMERA};
private static boolean hasPermissions(Context context,String... permissions){
if (context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
@Override
public void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (hasPermissions(requireContext())) {
// If permissions have already been granted, proceed
Navigation.findNavController(requireActivity(), R.id.fragment_container).navigate(
PermissionsFragmentDirections.actionPermissionsToSelector());

} else {
// Request camera-related permissions
requestPermissions(PERMISSIONS_REQUIRED, PERMISSIONS_REQUEST_CODE);
}

}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull @NotNull String[] permissions, @NonNull @NotNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSIONS_REQUEST_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Takes the user to the success fragment when permission is granted
Navigation.findNavController(requireActivity(), R.id.fragment_container).navigate(
PermissionsFragmentDirections.actionPermissionsToSelector());
} else {
Toast.makeText(getContext(), "Permission request denied", Toast.LENGTH_LONG).show();
}
}
}
}
PermissionFragment.java
<navigation 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/nav_graph"
app:startDestination="@id/permissionFragment">

<fragment
android:id="@+id/permissionFragment"
android:name="com.example.kotlinconver2java.fragments.PermissionFragment"
android:label="PermissionFragment" >
<action
android:id="@+id/action_permissionFragment_to_selectorFragment"
app:destination="@id/selectorFragment"
app:popUpTo="@id/permissionFragment"
app:popUpToInclusive="true"/>
</fragment>
<fragment
android:id="@+id/selectorFragment"
android:name="com.example.kotlinconver2java.fragments.SelectorFragment"
android:label="SelectorFragment" />

</navigation>
我努力了:
重启安卓工作室
删除 .build 目录并重新生成它
但它们都不起作用

最佳答案

它爱了。
我犯了一个愚蠢的错误。
在 kotlin 中,您可以在不导入 .java 类的情况下使用 fragmentdirection,但在 java 中,您需要自己导入。
我应该使用“PermissionFragmentDirections”,而不是“PermissionsFragmentDirections”

关于java - FragmentDirections 生成成功但无法解析符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68771075/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com