片段中的吐司不显示

use*_*702 0 android toast android-fragments

当用户单击活动的FRAGMENT中的按钮时,我希望有一个弹出式上下文帮助.我尝试过使用它Toast来执行此操作但是徒劳无功.弹出对话框未显示(请注意Fragment使用Toast中的建议没有帮助).

片段类中的代码如下:

            final Button help = (Button) view.findViewById(R.id.help_button);
        del.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v) {
            Context context = (TabsActivity) getActivity().getApplicationContext();
            CharSequence text = "Hello toast!";
            int duration = Toast.LENGTH_LONG;
            Toast toast = Toast.makeText(view.getContext(), text, duration);
            toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
            toast.show();
            }
        });
Run Code Online (Sandbox Code Playgroud)

我尝试了几种变体CONTEXT,其中两种显示在代码中.我也试过getActivity(),getView().getContext(),getContext()所有这一切就白费了.您能帮助理解如何在片段中设置CONTEXT吗?

Blu*_*ell 5

使用您的应用程序上下文,而不是从视图中再次获取它.

        Context context = getActivity().getApplicationContext();
        Toast.makeText(context, "Hello toast!", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

保持简单并从那里开始工作,这样你就可以知道我们哪个位实际上导致了你的错误.

将日志记录到您的代码中,然后您可以确定何时实际使用onClick侦听器而不是依赖Toast

 setOnClickListener(new View.OnClickListener(){
     @Override
     public void onClick(View v) {
          Log.d("MyTag", "Button 1 was pressed");
     }
 }
Run Code Online (Sandbox Code Playgroud)