walldialog“ onclick”方法无法正常工作

发布于 2025-01-29 07:15:57 字数 2632 浏览 1 评论 0原文

我目前有一个警报对话框,该对话框正在片段上显示。对话框显示给用户没有任何问题,但“ setPosistivebutton ”和“ setNegativebutton ”没有响应对于正确的用户互动,按“ setPositivebutton ”之后,log.i是唯一实际工作的东西。我希望它显示吐司消息,并在按下可能的按钮后进入新片段。

    private FragmentRequestCodeBinding binding;

//TAG
private static final String TAG = "requestCodeFragment";

//Values
private String firstLetter = "B";
private int secondLetter = 0;
private String thirdLetter = "0";
private String fourthLetter = "0";
private String fifthLetter = "0";
private String dtcCode = firstLetter + secondLetter + thirdLetter + fourthLetter + fifthLetter;

//Buttons
private Button request;

//Views
View root;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    binding = FragmentRequestCodeBinding.inflate(inflater, container, false);
    root = binding.getRoot();

    request = root.findViewById(R.id.requestButton);

    // Inflate the layout for this fragment
    return root;
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    final NavController navController = Navigation.findNavController(view);


    request.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            new AlertDialog.Builder(getContext())
                    .setIcon(R.drawable.ic_baseline_priority_high_24)
                    .setTitle("Request for " + dtcCode)
                    .setMessage("Are you sure you want to request the following code " +
                            "for this car model?")
                    .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            Toast.makeText(getContext(), "Ticket created successfully!",
                                    Toast.LENGTH_SHORT).show();
                            navController.navigate(R.id.action_requestCodeFragment_to_navigation_profile);
                            
                            Log.i(TAG, "onClick: Pressed");
                        }
                    })
                    .setNegativeButton("No", null)
                    .setCancelable(true)
                    .show();
        }
    });

}

I currently have an alert dialog that is being displayed on a fragment. The dialog displays to the user with no issues, but the "setPositiveButton" and "setNegativeButton" are not responding to the user interaction correctly, the Log.i after the on "setPositiveButton" is pressed is the only thing that is actually working. I want it to display a Toast message and travel to a new fragment after the possitive button is has been pressed.

    private FragmentRequestCodeBinding binding;

//TAG
private static final String TAG = "requestCodeFragment";

//Values
private String firstLetter = "B";
private int secondLetter = 0;
private String thirdLetter = "0";
private String fourthLetter = "0";
private String fifthLetter = "0";
private String dtcCode = firstLetter + secondLetter + thirdLetter + fourthLetter + fifthLetter;

//Buttons
private Button request;

//Views
View root;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    binding = FragmentRequestCodeBinding.inflate(inflater, container, false);
    root = binding.getRoot();

    request = root.findViewById(R.id.requestButton);

    // Inflate the layout for this fragment
    return root;
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    final NavController navController = Navigation.findNavController(view);


    request.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            new AlertDialog.Builder(getContext())
                    .setIcon(R.drawable.ic_baseline_priority_high_24)
                    .setTitle("Request for " + dtcCode)
                    .setMessage("Are you sure you want to request the following code " +
                            "for this car model?")
                    .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            Toast.makeText(getContext(), "Ticket created successfully!",
                                    Toast.LENGTH_SHORT).show();
                            navController.navigate(R.id.action_requestCodeFragment_to_navigation_profile);
                            
                            Log.i(TAG, "onClick: Pressed");
                        }
                    })
                    .setNegativeButton("No", null)
                    .setCancelable(true)
                    .show();
        }
    });

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

霊感 2025-02-05 07:15:57

抱歉打扰男人,代码都很好。我开始使用真实的设备而不是Android模拟器,一切正常。

Sorry to bother guys, the code is all good. I started using a real device instead of the android emulator and everything is working just fine.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文